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