it-swarm.com.ru

Javascript: получить данные package.json в gulpfile.js

Сам по себе вопрос не для gulp, а как получить информацию из файла package.json в gulpfile.js; Например, я хочу получить домашнюю страницу или имя и использовать его в задании.

93
Lane

Не используйте require('./package.json') для процесса наблюдения. Использование require разрешит модуль как результаты первого запроса. Поэтому, если вы редактируете свой package.json, эти изменения не будут работать, если вы не остановите процесс наблюдения и не перезапустите его. Для процесса gulp watch лучше всего использовать метод bitlinguist, поскольку он будет перечитывать файл и анализировать его каждый раз при выполнении вашей задачи.

var fs = require('fs');

var json = JSON.parse(fs.readFileSync('./package.json'));
104
hapticdata

Это не специфический глоток.

var p = require('./package.json')
p.homepage

Обновление:

Имейте в виду, что «require» будет кэшировать результаты чтения - это означает, что вы не можете требовать, запишите в файл, затем запросите снова и ожидайте, что результаты будут обновлены.

132
Mangled Deutz

Это хорошее решение @ Mangled Deutz. Я сам сначала это сделал, но это не сработало (вернемся к этому через секунду), затем я попробовал это решение:

# Gulpfile.coffee
requireJSON = (file) ->
    fs = require "fs"
    JSON.parse fs.readFileSync file

Теперь вы должны увидеть, что это немного многословно (хотя это сработало). require('./package.json') - лучшее решение:

Совет

-помните, чтобы добавить «./» перед именем файла. Я знаю, это просто, но это разница между методом require, работающим и не работающим. 

6
dewwwald

Если вы запускаете gulp из NPM, например, используете " npm run build " или что-то в этом роде 

(Это работает только для триггеров прогона глотка NPM)

process.env.npm_package _Object 

это должно быть разделено подчеркиванием для более глубоких объектов. 

если вы хотите прочитать какой-то конкретный конфиг в package.json, как вы хотите прочитать конфигурационный объект, который вы создали в package.json

scripts : {
   build: gulp 
},
config : {
   isClient: false.
}

тогда вы можете использовать 

process.env.npm_package_**config_isClient**
0
Manasvi Sareen