2017-03-14 10 views
9

मैं विंडोज 10 के साथ एक कॉरपोरेट कंप्यूटर का उपयोग करता हूं। मेरे पास नोडजेस v6.10.0 और npm v3.10.10 है। यह पहली बार है कि मैं इस कंप्यूटर पर नोडजेस/एनपीएम स्थापित करता हूं।पैकेज.जेसन फाइलें थोड़ी देर बाद दूषित हो गई हैं

जब मैं एक मॉड्यूल स्थापित करता हूं (किसी भी प्रकार के मॉड्यूल, उदाहरण के लिए npm install jsdoc) तो सब कुछ ठीक काम करता है। मैं कई बार अपने example.js पर कॉल कर सकता हूं, और सब ठीक है।

लेकिन थोड़ी देर के (यादृच्छिक अवधि) के बाद मैं अपने कार्यक्रम अब और क्योंकि मैं नीचे त्रुटि नहीं चला सकते हैं:

78c0 b658 72a3 e0f5 7832 e7d4 b5ee dcc8 
8f00 9951 3b8a cbd5 db7f 4556 5e8b e88d 
087d 9bb8 ff15 9acb 0a09 7aaf afd3 ced2 
3aa9 e2c5 7e7b c4a1 7b82 a332 2848 83ed 
adca d7e8 3228 5537 64eb 3105 2338 6ae2 
[...] 
:

>node example.js 
module.js:96 
    throw e; 
    ^

SyntaxError: Error parsing C:\my_path\node_modules\some_module\package.json: Unexpected token x in JSON at position 0 

अगर मैं SublimeText साथ package.json की सामग्री मुझे मिल जाँच

और वास्तव में यह package.json फाइलें node_modules के अंतर्गत इस परियोजना के लिए दूषित हो गई हैं .... सभी मॉड्यूल के लिए!

हालांकि, अगर मैं अपने प्रोजेक्ट फ़ोल्डर में एक package.json है, यह असर पड़ा नहीं किया जाएगा, केवल node_modules फ़ोल्डर के अंतर्गत लहरें उठती हैं ....

मुद्दा मैं ठीक node_modules नष्ट करने के लिए और पुनः स्थापित करने के npm install के साथ मेरे मॉड्यूल। वास्तव में आसान नहीं है। ऐसा करने के बाद, मेरी package.json फ़ाइलें अपेक्षित सामग्री के साथ फिर से सही हैं।

मैंने सोचा कि यह हमारे मैकएफ़ी एंटी-वायरस से संबंधित हो सकता है, लेकिन यह package.json फ़ाइलों को node_modules के तहत केवल क्यों प्रभावित करेगा, न कि अन्य फ़ोल्डर्स में हैं?

मैंने कहीं पढ़ा है कि एक कॉर्पोरेट प्रॉक्सी गलत एन्कोडिंग के साथ package.json डाउनलोड कर सकता है, लेकिन जब मैं अपने मॉड्यूल स्थापित करता हूं, तो package.json पूरी तरह से सामान्य होते हैं।

तो अगर किसी के पास कोई विचार/लीड है, तो मैं सराहना करूंगा!

संपादित: भ्रष्टाचार NPM (5.x) की अंतिम रिलीज ... मैं नहीं जानता कि के बाद से तो होना ही बंद कर दिया है, तो यह है कि यह से संबंधित है, या हो सकता है एक Windows अद्यतन स्थापित है, या मेरे मैं/टी विभाग ने एक सॉफ्टवेयर अद्यतन धक्का दिया ...

+0

बस सोच रहा है, अलग-अलग 'package.json का एक "हालिया" समय दिखाएं जिसमें उन्हें अंतिम बार संपादित/अपडेट किया गया था? क्या यह केवल उस परियोजना के लिए होता है जिस पर आप काम कर रहे हैं? या आपके मशीन पर मौजूद सभी परियोजनाओं के लिए? – therobinkim

+0

यह वैश्विक संकुल ("-g" के साथ स्थापित) पर नहीं होता है, लेकिन स्थानीय संकुल पर। मैं बहुत सारे नोड विकास नहीं करता, इसलिए यह वर्तमान परियोजना पर है ... – AymKdn

उत्तर

0

इस चरण में, यदि मैं था, तो मैं SysInternals Process Monitor का उपयोग कर रहा हूं: विशेष रूप से कुछ भी न मानें, और जब तक प्रश्न में फाइलें बदलना शुरू नहीं हो जाता तब तक केवल आपके सिस्टम पर सभी I/O मॉनीटर करें और लॉग इन करें। आप डिस्क क्रियाओं को रिकॉर्ड करने के लिए प्रक्रिया मॉनीटर सेट अप कर सकते हैं, और उसके बाद लॉग को तब तक फ़िल्टर कर सकते हैं जब तक आप यह न देख सकें कि कौन सी प्रक्रिया वास्तव में नाम में .json के साथ कुछ भी बदल रही है। वहां बहुत सारे लॉग होंगे, और आपको उनके माध्यम से थोड़ी देर बिताएंगे, लेकिन कम से कम आपको कम से कम इस सवाल का जवाब देने के लिए कुछ देना चाहिए कि "कौन सा प्रोग्राम इन फाइलों को बदल रहा है?" अनुमान लगाने के बजाय।

एक अन्य विचार: यदि फ़ाइलें बदल रही हैं और प्रक्रिया मॉनीटर कुछ भी नहीं दिखाता है, तो आपके पास एक डिस्क हो सकती है जो खराब हो रही है। थोड़ी देर के लिए यूएसबी ड्राइव पर अपना पूरा काम करने पर विचार करें और देखें कि क्या वही परिणाम होते हैं; अगर फाइल C: ड्राइव पर दूषित हो रही हैं लेकिन ड्राइव F: (या जो कुछ भी) पर नहीं है, तो यह सुझाव दे सकता है कि आपकी डिस्क विफल हो रही है। विशेष रूप से एसएसडी के साथ, डिस्क मरने लगते समय कुछ अजीब चीजें कर सकती हैं।

इस तरह के यादृच्छिक फ़ाइल परिवर्तनों को ट्रैक करना मुश्किल हो सकता है, लेकिन ऐसे तरीके हैं जिन्हें आप कारण की पहचान कर सकते हैं; उम्मीद मत छोड़ो, और आपको यह मिल जाएगा। सौभाग्य!

+0

बढ़िया सलाह दी गई है! धन्यवाद। असल में, ऐसा लगता है कि भ्रष्टाचार एनपीएम (5.x) की आखिरी रिलीज के बाद से होने वाला है ... मुझे नहीं पता कि यह उससे संबंधित है या शायद एक विंडोज अपडेट स्थापित है, या मेरे आई/टी डिप्टी ने धक्का दिया सॉफ्टवेयर अपडेट ... – AymKdn

+0

अच्छा, अगर यह फिर से शुरू होता है, तो आपके पास ऐसे टूल्स हैं जो यह बता सकते हैं कि यह कहां से आ रहा है। आप कम से कम प्रोसेस मॉनिटर का उपयोग किसी भी संदेह से परे साबित करने के लिए कर सकते हैं कि 'npm' को छोड़कर 'package.json' फ़ाइलों को छूने वाला कुछ भी नहीं है, और यहां तक ​​कि यह जानकर कि यह बहुत उपयोगी जानकारी होगी। –

0

यह बहुत अजीब है। मैलवेयर से संबंधित एकमात्र कारण यह नहीं हो सकता है कि यह एन्कोडिंग के साथ एक समस्या होगी। जेएसओएन के लिए एकमात्र वैध एन्कोडिंग यूटीएफ -8, यूटीएफ -16 और यूटीएफ -32 (दोनों छोटे और बड़े एंडियन) हैं लेकिन पैकेज.जेसन के लिए सबसे सुरक्षित एन्कोडिंग निश्चित रूप से यूटीएफ -8 (बीओएम के बिना) है।

सुनिश्चित करें कि आप इसे कभी भी कुछ संपादक में नहीं खोलें और इसे यूटीएफ -8 की तुलना में किसी अन्य चीज़ में सहेजें।

भ्रष्टाचार का एकमात्र अन्य कारण वास्तव में कुछ मैलवेयर हो सकता है।

यदि सब कुछ डाउनलोड करने के बाद ठीक है, तो एक संभावित समाधान होगा:

JSON बारे में अधिक जानकारी और वर्ण एन्कोडिंग के लिए उन उत्तर देखें सफल स्थापना के बाद प्रत्येक package.json फ़ाइल को केवल पढ़ने के लिए और देखें कि आप कब देखेंगे एन त्रुटि है कि कुछ उन्हें लिख नहीं सकता है।

एक और चीज जो मैं देखता हूं वह यह है कि यह प्रत्येक निर्देशिका में होता है या हो सकता है कि केवल कुछ निर्देशिकाएं जिन्हें आप साझा या समन्वयित कर रहे हों या नेटवर्क माउंटेड डिवाइस पर हों।

+0

उत्तर के लिए धन्यवाद। तो, नहीं, मैं किसी भी पैकेज.जेसन पर नहीं खुलता हूं। मैं उनमें से एक पर पढ़ने के लिए कोशिश करूँगा यह देखने के लिए कि क्या इससे कोई फर्क पड़ता है। मैलवेयर से संक्रमित होने का कोई कारण नहीं है। और उन फ़ोल्डरों को साझा नहीं किया गया है या सिंक किया गया है या – AymKdn

1

मैं कोशिश करने के लिए एक विशेष सुधार नहीं हैं, लेकिन वहाँ कुछ सामान्य जो कि वहां पहुंचने के हो सकते हैं:

  1. अन-इंस्टॉल/नोड & NPM को पुन: इंस्टॉल - जाहिर है, पहले यदि आप संभव हो तो हमेशा कोशिश करें।

  2. सभी अनधिकृत सेवाओं/पृष्ठभूमि ऐप्स (विशेष रूप से स्कैनर) बंद करें और देखें कि समस्या बंद हो गई है या नहीं। यदि ऐसा है, तो परीक्षण के दौरान अपने दायरे को संकीर्ण करें और सेवाओं को एक-एक करके चालू करें। हो सकता है कि आप अपने ऐप को पर्याप्त बार चलाने के लिए एक स्क्रिप्ट बनाएं जो सामान्य रूप से त्रुटि उत्पन्न करेगी।

  3. क्या कोई ऑन-सेव बिल्डिंग उपकरण चल रहा है? गुलपस्ता/ग्रंट? यह अपराधी भी हो सकता है।

मुझे लगता है कि यदि आप पहले दो सुझावों को आजमाते हैं तो आपको अपनी समस्या मिल जाएगी।

इसके अलावा, आपके द्वारा उल्लेख की जाने वाली केवल पढ़ने वाली चीज़ अजीब है, लेकिन क्या आप सुनिश्चित हैं कि उचित नीतियां ऐसी हैं जो आपको उन अनुमतियों को सेट करने की अनुमति देगी? विंडोज कभी-कभी भ्रमित होता है क्योंकि आप अनुमतियां बदल सकते हैं और कभी-कभी ऐसा लगता है कि चीजें ठीक से चलती हैं, लेकिन उन्होंने नहीं किया और जब तक चीजें अभी भी काम नहीं कर रही हैं तब तक आप वास्तव में नोटिस नहीं करते हैं और आप फिर से अनुमतियों की जांच करने के लिए वापस जाते हैं।

संबंधित मुद्दे