rapkin
@rapkin
i ♥ gulp coffee

Как делать перезагрузку json-конфига при перезапуске таска в Gulp?

В файле ./res/lvl_1.json лежит некоторая конфигурация, которую нужно обработать, а результат обработки отправить как локальную переменную в шаблон jade. Настроено перезапуск таска jade при изменении в конфиге.
Проблема в том что перезапуск таска и перекомпиляция jade шаблона происходит успешно, а вот изменения, внесенные в конфигурационный файл не подхватываются.
Например, в файле ./res/lvl_1.json есть поле width, когда я его меняю, таск запускается заново и страница перезагружается, но изменений на странице не произошло. А при перезапуске gulp все изменения есть.
gulp.task 'jade', ->
  lvl = require './res/lvl_1.json'
  console.log lvl.width # выводит одно и то же число, хотя я его изменяю
  gulp.src 'jade/index.jade'
    .pipe jade
      pretty: true
      locals:
        game_file: game_file
        barrier: make_barrier(lvl.barrier)
        width: lvl.width
        height: lvl.height

    .pipe gulp.dest 'dist'
    .pipe livereload()
  • Вопрос задан
  • 2370 просмотров
Решения вопроса 1
rapkin
@rapkin Автор вопроса
i ♥ gulp coffee
Вместо этого
lvl = require './res/lvl_1.json'
написал
lvl = JSON.parse fs.readFileSync './res/lvl_1.json', 'utf-8'

и завелось.
Надеюсь кому-то это пригодится
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
standy
@standy
Вы можете удалить нужный модуль из require.cache, это приведет к тому что при следующем подключении он загрузится заново.

Проблему можно решить и проще, загружайте файл вручную, например с fs.readFile
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы