Risposte:
Non utilizzare require('./package.json')
per un processo di controllo. L'utilizzo require
risolverà il modulo come risultato della prima richiesta. Quindi, se stai modificando il tuo package.json, tali modifiche non funzioneranno a meno che non interrompi il processo di visualizzazione e lo riavvii. Per un processo di controllo gulp sarebbe meglio usare il metodo di bitlinguist poiché rileggerà il file e lo analizzerà ogni volta che viene eseguita l'attività.
var fs = require('fs');
var json = JSON.parse(fs.readFileSync('./package.json'));
require
e rimuovere la cache condelete require.cache[require.resolve(FILEPATH)];
Questo non è specifico per il gulp.
var p = require('./package.json')
p.homepage
AGGIORNARE:
Tieni presente che "require" memorizzerà nella cache i risultati della lettura, il che significa che non è possibile richiedere, scrivere sul file, quindi richiedere di nuovo e aspettarsi che i risultati vengano aggiornati.
Questa è una buona soluzione @Mangled Deutz. Io stesso l'ho fatto prima ma non ha funzionato (torniamo a quello in un secondo), poi ho provato questa soluzione:
# Gulpfile.coffee
requireJSON = (file) ->
fs = require "fs"
JSON.parse fs.readFileSync file
Ora dovresti vedere che questo è un po 'prolisso (anche se ha funzionato). require('./package.json')
è la soluzione migliore:
-Ricorda di aggiungere "./" davanti al nome del file. So che è semplice, ma è la differenza tra il metodo require funzionante e non funzionante.
Se stai attivando gulp da NPM, come usare " npm run build " o qualcosa del genere
(Funziona solo per i trigger di esecuzione gulp di NPM)
oggetto process.env.npm_package_
questo dovrebbe essere separato da un trattino basso per oggetti più profondi.
se vuoi leggere qualche configurazione specifica in package.json come vuoi leggere l'oggetto di configurazione che hai creato in package.json
scripts : {
build: gulp
},
config : {
isClient: false.
}
quindi puoi usare
process.env.npm_package_**config_isClient**