Не какой-либо gulp -специальный вопрос per se, но как получить информацию из файла package.json в файле gulpfile.js; Например, я хочу получить домашнюю страницу или имя и использовать ее в задаче.
Javascript: получить данные package.json в gulpfile.js
Ответ 1
Не используйте require('./package.json')
для процесса просмотра. Использование require
разрешит модуль как результат первого запроса. Поэтому, если вы редактируете файл package.json, эти изменения не будут работать, если вы не остановите процесс просмотра и не перезапустите его. Для процесса просмотра gulp было бы лучше использовать метод bitlinguist, поскольку он будет перечитывать файл и анализировать его каждый раз, когда выполняется ваша задача.
var fs = require('fs');
var json = JSON.parse(fs.readFileSync('./package.json'));
Ответ 2
Это не gulp.
var p = require('./package.json')
p.homepage
UPDATE:
Имейте в виду, что "require" будет кэшировать результаты чтения - это означает, что вы не можете требовать, записать в файл, а затем потребовать еще раз и ожидать, что результаты будут обновлены.
Ответ 3
Это хорошее решение @Mangled Deutz. Сначала я это сделал, но это не сработало (к тому же через секунду), я попробовал это решение:
# Gulpfile.coffee
requireJSON = (file) ->
fs = require "fs"
JSON.parse fs.readFileSync file
Теперь вы должны увидеть, что это немного подробный (хотя он и работает). require('./package.json')
- лучшее решение:
Совет
- помните, чтобы добавить './' перед именем файла. Я знаю его простую, но разница в том, что метод require работает и не работает.
Ответ 4
Если вы запускаете gulp из NPM, например, используя npm run build "или что-то
(Это работает только для gulp запуска триггеров с помощью NPM)
process.env.npm_package_Object
это должно быть разделено символом подчеркивания для более глубоких объектов.
если вы хотите прочитать некоторую конкретную конфигурацию в package.json, как вы хотите прочитать конфигурационный объект, который вы создали в package.json
scripts : {
build: gulp
},
config : {
isClient: false.
}
то вы можете использовать
process.env.npm_package_**config_isClient**