'एफएस कैसे ठीक करें: देशी मॉड्यूल स्रोतों का पुनर्मूल्यांकन समर्थित नहीं है' - सुशोभित-एफएस


162

हाल ही में मैंने Node v.6 में स्विच किया है, और यह सामान्य बिल्ड ग्रंट / गुलशन / थैला चलाने के साथ अधिक से अधिक समस्याएं पैदा करना शुरू कर दिया है

उदाहरण के लिए:

$ gulp
[14:02:20] Local gulp not found in ~/_Other/angular-2-ts/angular2-seed
[14:02:20] Try running: npm install gulp

जबकि gulp और अन्य सभी प्लगइन्स और मॉड्यूल स्थापित किए गए हैं (और यहां तक ​​कि फिर से इंस्टॉल किए गए हैं rm -rf node_modules) / node_modules फ़ोल्डर में।

उन त्रुटियों में से अधिकांश की तरह लाइन है

(node:42) fs: re-evaluating native module sources is not supported. 
If you are using the graceful-fs module, 
please update it to a more recent version.

42 के साथ मनमानी संख्या के रूप में

उस मुद्दे की तरह, जो मैंने प्रस्तुत किया है - angular2-seed repo में https://github.com/mgechev/angular2-seed/issues/902

मुझे क्या करना की कोशिश की है n के माध्यम से नोड v.5 को ढाल है ( https://www.npmjs.com/package/n ) - यह काम किया। फिर सभी node_modulesफ़ोल्डर्स को हटा दें , फिर करें

npm info graceful-fs -v
3.3.6

ठीक है, नए उन्नयन या हटाने और स्थापित करने देता है:

npm i graceful-fs@latest
npm i graceful-fs@4.1.4
sudo npm i graceful-fs@4.1.4 -g

सभी में परिणाम

npm info graceful-fs -v
3.3.6

तो अब मैं शालीनता से सुशोभित-एफएस 3.3.6 या कुछ मॉड्यूल आश्रितों में भी बदतर हूं , जैसे

$ angular2-seed
$ npm install

//other lines..
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before 
will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 
as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.

यहां क्या रणनीति हो सकती है:

  • मैन्युअल रूप से उन सभी डिपों को पैच करें जिनमें ग्रेसफुल-एफएस <4.0.0 है।
  • विशिष्ट पैकेज संस्करण का उपयोग करने के लिए कुछ वैश्विक स्विच है?
  • सब कुछ पुनर्स्थापित करें?

मुझे गुलप और मेरे कुछ मॉड्यूल के साथ एक ही मुद्दा है। मैंने नवीनतम सुशोभित-एफएस का उपयोग करने के लिए मॉड्यूल को अपग्रेड करके अपने मॉड्यूल को ठीक किया, लेकिन मुझे यकीन नहीं है कि अन्य मॉड्यूल को ठीक करने के लिए एक समाधान है जो अभी तक उन्नत नहीं हुआ है।
जेरेमी चोन

ऐसा लगता है कि यह गुल्प 3.x में तय नहीं होगा और आपको गुल 4.x github.com/gulpjs/gulp/issues/1571
dtothefp

जवाबों:


170

मुझे यह समस्या थी और मैं अद्यतन करके इसे ठीक करने में सक्षम था npm

sudo npm update -g npm

अद्यतन से पहले, का परिणाम npm info graceful-fs | grep 'version:'था:

version: '3.3.12'

अद्यतन के बाद परिणाम है:

version: '3.9.3'

धन्यवाद @ जॉर्ज। इससे समस्या को ठीक करने में मदद मिली। मुझे अभी भी appname@0.1.x / path / of / app of beautifulful-fs@4.1.4 मिल रहा है, हर बार जब मैं अपने ऐप डायरेक्टरी में npm इंस्टॉल चलाता हूं। लेकिन मैं अब उसी के साथ रह रहा हूं।
जियो

हाय @Geo, यहाँ भी, एनालॉग-निको द्वारा उत्तर को देखो, हमारे पास एक ही पैकेज के विभिन्न संस्करण हैं क्योंकि अन्य उपकरण उन संस्करणों पर सख्ती से निर्भर करते हैं। चेतावनी से छुटकारा पाने के लिए हमें उन सभी को अपग्रेड करने या प्रतिस्थापन की तलाश करने की आवश्यकता है।
असिमोव

5
यह मेरे लिए काम नहीं किया, मुझे दौड़ना पड़ाnvm use v6.2.1
निक्वेन्दा

46
कृपया ध्यान दें कि npm info graceful-fs -vnpm का संस्करण लौटाता है (यह चलने जैसा ही है npm -v) और न ही ग्रेसफुल-एफएस। ग्रेसफुल-एफएस संस्करण प्राप्त करने के लिए, कुछ का उपयोग करें npm info graceful-fs | grep version:
nstCactus

6
@Asimov यह मेरे लिए भी काम किया। इसके अलावा, यदि आपने हाल ही में NodeJS को पुन: स्थापित किया है (मैंने उनकी वेबसाइट पर पैकेज के माध्यम से नोड स्थापित किया है और फिर इसे होमब्रे से एक के साथ बदल दिया है) rm -rf node_modules && npm installप्रोजेक्ट होम फ़ोल्डर में चलाएं ।
दयलांतेपिगुय

73

टाइप करें npm list graceful-fsऔर आप देखेंगे कि वर्तमान में कौन से ग्रेसफुल-एफएस संस्करण स्थापित किए गए हैं।

मेरे मामले में मुझे मिला:

npm list graceful-fs

@request/promise-core@0.0.1 /projects/request/promise-core
+-- gulp@3.9.1
| `-- vinyl-fs@0.3.14
|   +-- glob-watcher@0.0.6
|   | `-- gaze@0.5.2
|   |   `-- globule@0.1.0
|   |     `-- glob@3.1.21
|   |       `-- graceful-fs@1.2.3        <==== !!!
|   `-- graceful-fs@3.0.8 
`-- publish-please@2.1.3
  +-- nsp@2.4.0
  | `-- nodesecurity-npm-utils@4.0.1
  |   `-- silent-npm-registry-client@2.0.0
  |     `-- npm-registry-client@7.1.0
  |       `-- graceful-fs@4.1.3 
  `-- read-pkg@1.1.0
    `-- load-json-file@1.1.0
      `-- graceful-fs@4.1.4

जैसा कि आप gulpनीचे देख सकते हैं कि यह बहुत पुराने संस्करण पर निर्भर करता है। दुर्भाग्य से, मैं अपडेट नहीं कर सकता कि खुद का उपयोग कर रहा हूं npm update graceful-fsgulpउनकी निर्भरता को अद्यतन करने की आवश्यकता होगी। तो अगर आपके पास इस तरह का मामला है तो आप भाग्य से बाहर हैं। लेकिन आप पुराने निर्भरता के साथ परियोजना के लिए एक मुद्दा खोल सकते हैं - यानी gulp


13
FYI करें, आपके विशिष्ट उदाहरण में, gulpइसे संस्करण 3 में नहीं बदला जाएगा , लेकिन केवल संस्करण 4 में: github.com/gulpjs/gulp/issues/1571
JBE

2
यह मेरे लिए था, गुलाल हटाने के लिए अंतिम धक्का
डार्को जेड

मेरे मामले में, पूर्व- v4 graceful-fsमॉड्यूल निर्भरता npmस्वयं (संस्करण 3.10.3) से होकर आ रहा था cmd-shim@2.0.2। मैंने इसे तब तक नहीं देखा जब तक मैंने वैश्विक graceful-fs निर्भरता का उपयोग करके सूचीबद्ध नहीं किया npm list -g graceful-fs
रस्टी शेकलफोर्ड

इससे मुझे इसे हल करने में मदद मिली। मेरा ग्रेसफुल-एफएस पैकेज अप-टू-डेट था, लेकिन कुछ अन्य पैकेज अभी भी पुराने संस्करण पर निर्भर थे।
स्केरिट

21

इस बग को फिर से स्थापित करें

npm uninstall gulp
npm install gulp

गल्प जैसी आवाज़ों ने इस मुद्दे को ठीक कर दिया है - याद नहीं कर पाता कि क्या मैंने गल्प - सेव-देव के साथ स्थापित किया है या नहीं, लेकिन आपका तरीका मेरे प्रोजेक्ट फ़ोल्डर से काम करता है।
उतरा

मेरे लिए भी इस मुद्दे को तय किया
Shady Keshk

हाँ, एक पुराने गुल की निर्भरता समस्या की तरह दिखता है।
सेराओसे

1

नोड_मॉड्यूल फ़ोल्डर सामग्री हटाना और चलाना

npm install bower
npm install

मेरे लिए समस्या हल हो गई!


1

जैसा कि यहां वर्णित है , आप कमांड का भी प्रयास कर सकते हैं

npm cache clean

यह मेरे लिए तय हो गया, क्योंकि अन्य चरणों में पूरी तरह से परिणाम नहीं मिला था (सब कुछ अपडेट करने के अलावा)।


1

बस यह इंगित करने के लिए कि कॉर्डोवा सुंदर-एफएस निर्भरता के साथ अपने स्वयं के एनपीएम में लाता है, इसलिए यदि आप कॉर्डोवा का उपयोग करते हैं, तो सुनिश्चित करें कि यह नवीनतम है इसलिए आपको उसी से नवीनतम ग्रेसफुल-एफएस मिलता है।


1

मैं इसे ठीक करने में सक्षम था:

  1. द्वारा अपडेट किया जा रहा है package.json
  2. नोड_मॉडल फ़ोल्डर को हटाना
  3. क्रियान्वित npm install

0

यदि आप nvm चला रहे हैं, तो आप चलाना चाह सकते हैं। nvm use <desired-node-version>यह npm के अनुरूप है


0

या अपडेट करने का प्रयास करें node:

brew upgrade node

अगर यह brew(मेरे मामले में) के साथ स्थापित है । sudo npm update -g npmमेरे लिए "वही" समस्या हल नहीं हुई।


0

रिपोर्ट कहती है: विक्रेता / win32-x64-48 / बाइंडिंग .node में एक फ़ाइल गायब है

मैंने बाइंडिंग.नोड फ़ाइल की तलाश की और मुझे इसमें ...

https://github.com/sass/node-sass-binaries

बाइंडिंग नाम के साथ सही फ़ाइल को कॉपी करें। यह काम करता है।


0

मेरे कॉर्डोवा-प्रोजेक्ट के मामले में, कॉर्डोवा-जी को अनइंस्टॉल करने और स्थापित करने से मेरे लिए समस्या तय हो गई।

npm uninstall -g cordova
npm install -g cordova
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.