Відповіді:
Не використовуйте 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
ОНОВЛЕННЯ:
Будьте в курсі, що "вимагати" буде кешувати результати прочитаного - це означає, що ви не можете вимагати, запишіть у файл, потім знову вимагайте та очікуйте оновлення результатів.
Це хороше рішення @Mangled Deutz. Я сам спершу це зробив, але нічого не вийшло (повернутися до другої секунди), потім спробував це рішення:
# Gulpfile.coffee
requireJSON = (file) ->
fs = require "fs"
JSON.parse fs.readFileSync file
Тепер ви повинні побачити, що це дещо багатослівний (хоч він і працював). require('./package.json')
найкраще рішення:
-запомніть, щоб додати "./" перед іменем файлу. Я знаю його просто, але це різниця між необхідним методом, що працює, і не працює.
Якщо ви запускаєте глоп з NPM, наприклад, використовуючи " npm run build " або щось подібне
(Це працює лише для пускових механізмів запуску за допомогою NPM)
process.env.npm_package_ Об'єкт
це має бути виражено підкресленням для глибших об'єктів.
якщо ви хочете прочитати певний конфігурацію в package.json, як ви хочете прочитати конфігураційний об’єкт, який ви створили в package.json
scripts : {
build: gulp
},
config : {
isClient: false.
}
тоді можна використовувати
process.env.npm_package_**config_isClient**