जवाबों:
require('./package.json')एक घड़ी की प्रक्रिया के लिए उपयोग न करें । उपयोग requireकरने से पहले अनुरोध के परिणाम के रूप में मॉड्यूल को हल किया जाएगा। इसलिए यदि आप अपने पैकेज को संपादित कर रहे हैं। तो उन संपादन को काम नहीं करेंगे जब तक आप अपनी घड़ी की प्रक्रिया को रोक नहीं देते हैं और इसे फिर से शुरू नहीं करते हैं। एक gulp घड़ी की प्रक्रिया के लिए बिटलिंगुइस्ट की विधि का उपयोग करना सबसे अच्छा होगा क्योंकि यह फ़ाइल को फिर से पढ़ेगा और हर बार यह बताएगा कि आपका कार्य निष्पादित है।
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')सबसे अच्छा समाधान है:
फ़ाइल नाम के सामने './' जोड़ने के लिए। मुझे इसका सरल पता है, लेकिन यह काम करने की आवश्यकता विधि और काम न करने के बीच का अंतर है।
यदि आप एनपीएम से गल्प को ट्रिगर कर रहे हैं, जैसे " एनपीएम रन बिल्ड " या कुछ और
(यह एनपीएम द्वारा केवल गल्प रन ट्रिगर्स के लिए काम करता है)
process.env.npm_package_ ऑब्जेक्ट
यह गहरी वस्तुओं के लिए अंडरस्कोर द्वारा जब्त किया जाना चाहिए।
यदि आप package.json में कुछ विशिष्ट कॉन्फिग को पढ़ना चाहते हैं, जैसे आप config ऑब्जेक्ट पढ़ना चाहते हैं जो आपने package.json में बनाया है
scripts : {
build: gulp
},
config : {
isClient: false.
}
तो आप उपयोग कर सकते हैं
process.env.npm_package_**config_isClient**