Kendine özgü bir soru değil, gulpfile.js içindeki package.json dosyasından nasıl bilgi alınır; Örneğin, ana sayfayı veya adı alıp bir görevde kullanmak istiyorum.
Yanıtlar:
require('./package.json')Bir izleme süreci için kullanmayın . Kullanımı require, modülü ilk isteğin sonuçları olarak çözecektir. Bu nedenle, package.json dosyanızı düzenliyorsanız, bu düzenlemeler, saat sürecinizi durdurup yeniden başlatmadığınız sürece çalışmayacaktır. Bir yudum izleme süreci için, dosyayı yeniden okuyacağından ve göreviniz her yürütüldüğünde ayrıştıracağından, bitlinguist yöntemini kullanmak en iyisidir.
var fs = require('fs');
var json = JSON.parse(fs.readFileSync('./package.json'));
requireÖnbelleği kullanmak ve kaldırmak mümkündelete require.cache[require.resolve(FILEPATH)];
Bu, yutmaya özgü değildir.
var p = require('./package.json')
p.homepage
GÜNCELLEME:
"Zorunlu tut" seçeneğinin okuma sonuçlarını önbelleğe alacağını unutmayın - bu, gerekli olamayacağınız, dosyaya yazamayacağınız, ardından tekrar isteyemeyeceğiniz ve sonuçların güncellenmesini bekleyemeyeceğiniz anlamına gelir.
Bu iyi bir çözüm @Mangled Deutz. Bunu önce kendim yaptım ama işe yaramadı (Bir saniye sonra buna geri döndüm), sonra bu çözümü denedim:
# Gulpfile.coffee
requireJSON = (file) ->
fs = require "fs"
JSON.parse fs.readFileSync file
Şimdi bunun biraz ayrıntılı olduğunu görmelisiniz (işe yarasa da). require('./package.json')en iyi çözüm:
-dosya adının önüne './' eklemeyi unutmayın. Basit olduğunu biliyorum, ancak gerekli yöntem ile çalışma ve çalışmama arasındaki fark bu.
NPM'den yutkuyu tetikliyorsanız, "NPM'den yutkuyu npm run build " veya başka bir şey
(Bu yalnızca NPM tarafından yutkunma çalıştırma tetikleyicileri için geçerlidir)
process.env.npm_package_ Nesne
bu, daha derin nesneler için alt çizgi ile ayrılmalıdır.
package.json'da oluşturduğunuz yapılandırma nesnesini okumak istediğiniz gibi package.json'da belirli bir yapılandırma okumak istiyorsanız
scripts : {
build: gulp
},
config : {
isClient: false.
}
o zaman kullanabilirsin
process.env.npm_package_**config_isClient**