Respostas:
Não use require('./package.json')
para um processo de relógio. Usar require
resolverá o módulo como os resultados da primeira solicitação. Portanto, se você estiver editando seu package.json, essas edições não funcionarão, a menos que você interrompa o processo de observação e reinicie-o. Para um processo de observação gulp, seria melhor usar o método bitlinguist, pois ele irá reler o arquivo e analisá-lo cada vez que sua tarefa for executada.
var fs = require('fs');
var json = JSON.parse(fs.readFileSync('./package.json'));
require
e remover o cache comdelete require.cache[require.resolve(FILEPATH)];
Isso não é específico do gole.
var p = require('./package.json')
p.homepage
ATUALIZAR:
Esteja ciente de que "require" armazenará em cache os resultados da leitura - o que significa que você não pode solicitar, gravar no arquivo e depois exigir novamente e esperar que os resultados sejam atualizados.
Esta é uma boa solução @Mangled Deutz. Eu mesmo fiz isso primeiro, mas não funcionou (voltando a isso em um segundo), então tentei esta solução:
# Gulpfile.coffee
requireJSON = (file) ->
fs = require "fs"
JSON.parse fs.readFileSync file
Agora você deve ver que isso é um pouco prolixo (embora tenha funcionado). require('./package.json')
é a melhor solução:
- lembre-se de adicionar './' na frente do nome do arquivo. Eu sei que é simples, mas é a diferença entre o método require funcionar e não funcionar.
Se você estiver acionando o gulp do NPM, como usar " npm run build " ou algo assim
(Isso só funciona para gatilhos de gulp run por NPM)
process.env.npm_package_ Object
isso deve ser separado por sublinhado para objetos mais profundos.
se você deseja ler alguma configuração específica em package.json como deseja ler o objeto de configuração que você criou em package.json
scripts : {
build: gulp
},
config : {
isClient: false.
}
então você pode usar
process.env.npm_package_**config_isClient**