2015-03-31 12 views
5

में नेस्टेड नोड_मोड्यूल के लिए "फुलपाथ लागू नहीं किया जा सकता" त्रुटि मैं विजुअल स्टूडियो 2015 सीटीपी 6 में एमवीसी 6 + ऑरेलिया प्रोजेक्ट के साथ खेल रहा हूं, और कुछ दिलचस्प हो गया।वीएस2015 सीटीपी 6

मेरा node_modules डिफ़ॉल्ट रूप से प्रोजेक्ट रूट में है और सब कुछ ठीक काम करता है। हालांकि, मैं स्रोत पेड़ को थोड़ा अधिक संगठित रखना चाहता हूं और node_modules, jspm_modules और उप-फ़ोल्डर में संबंधित सामग्री को स्थानांतरित करना चाहता हूं - उदाहरण के लिए। MyApp\client\node_modules आदि

लेकिन अब विजुअल स्टूडियो परियोजना को लोड करना बंद कर देता है। यहाँ "VsProjectFault.failure.txt" से अपवाद है:

(Inner Exception #1) System.InvalidOperationException: The item metadata "%(FullPath)" cannot be applied to the path "client\node_modules\conventional-changelog\node_modules\lodash.assign\node_modules\lodash._basecreatecallback\node_modules\lodash.bind\node_modules\lodash._createwrapper\node_modules\lodash._basecreatewrapper\node_modules\". C:\Work\xxxxxxxxxx\xxxxxxxxxx.xxx\src\client\node_modules\conventional-changelog\node_modules\lodash.assign\node_modules\lodash._basecreatecallback\node_modules\lodash.bind\node_modules\lodash._createwrapper\node_modules\lodash._basecreatewrapper\node_modules\ 
    at Microsoft.Build.Shared.ErrorUtilities.ThrowInvalidOperation(String resourceName, Object[] args) 
    at Microsoft.Build.Shared.ErrorUtilities.VerifyThrowInvalidOperation(Boolean condition, String resourceName, Object arg0, Object arg1, Object arg2) 
    at Microsoft.Build.Shared.FileUtilities.ItemSpecModifiers.GetItemSpecModifier(String currentDirectory, String itemSpec, String definingProjectEscaped, String modifier, String& fullPath) 
    ... 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.VisualStudio.ProjectSystem.Utilities.DataflowExtensions.<>c__DisplayClass37`2.<<CreateSelfFilteringTransformBlock>b__38>d__0.MoveNext() 

जाहिर है समस्या में node_modules पुनरावर्ती पथ बहुत लंबा किया जा रहा है - और bug #6960

नोड अंतहीन लिए एक वैकल्पिक दृष्टिकोण की जरूरत है नोड नजर में है, Windows पर रिकर्सिव नेस्टेड node_modules फ़ोल्डर्स। अधिकांश विंडोज टूल्स, यूटिलिटीज और शैल फाइल और फ़ोल्डर पथ को 260 वर्ण से अधिक समय तक संभाल नहीं सकते हैं।

... जो मेरे लिए closed as won't fix की तरह लगता है:

नोड को बदलने के लिए नहीं जा रहा है, तो यह वास्तव में एक नोड मुद्दा नहीं है। समस्या मॉड्यूल लोडिंग सेमेन्टिक्स के साथ नहीं है, लेकिन मॉड्यूल स्थापना semantics के साथ। (दो संबंधित हैं, लेकिन समान नहीं।)

लेकिन तब मुझे समझ नहीं आता कैसे आ परियोजना पहली जगह में लोड हो रहा है किया गया था, क्योंकि कुछ रास्तों 260 निश्चित रूप से अधिक प्रतीक हैं node_modules परियोजना के तहत है, भले ही जड़!

क्या कॉन्फ़िगरेशन या कुछ में कुछ सेटिंग है जो विजुअल स्टूडियो 2015 को node_modules के साथ प्रोजेक्ट लोड करने में मदद करता है, क्या हो रहा है?

+1

इस बदतर हो रही हो सकता है। मैं गिथब पर एक समस्या दर्ज करने का सुझाव दूंगा, माइक्रोसॉफ्ट टीम बहुत ही संवेदनशील है और उन परिदृश्यों को ट्रैक करने के लिए खुली है। इसके लायक होने के लिए, wwwroot फ़ाइल सिस्टम की वजह से कुछ लोग एनईटी 5 के प्रवाह पर काम कर रहे हैं, इसलिए शायद आपको https://gitter.im/Aurelia/Discuss <- बहुत बढ़िया दोस्तों में भी देखना चाहिए। –

उत्तर

3

http://bstruthers.com/weblog/2013/02/06/Cannot_evaluate_the_item_metadata_FullPath/

इसका कारण यह है वी.एस. में फ़ाइल पथ में चरित्र सीमा पार कर गया है। फ़ोल्डर को रूट फ़ोल्डर के अंदर कॉपी करें और कोशिश करें।

+0

हाँ, यह समाधान मेरे लिए काम किया। – yadavr

1

मैं Win32 लंबे रास्तों नीति सक्षम करने समूह नीति संपादक का उपयोग करके एक Windows 10 विकास मशीन में इस समस्या को हल करने में कामयाब रहे। यहाँ आवश्यक कदम (निर्भर करता है अगर तुम वर्षगांठ अद्यतन स्थापित है या नहीं है) कर रहे हैं:

पहले वर्षगांठ अद्यतन

आप 14,352 और आरटीएम 1607 के बीच एक Windows 10 का निर्माण चला रहे हैं, उर्फ

  • लॉन्च समूह नीति संपादकWindows Key दबाने और मैन्युअल gpedit.msc टाइप करके, तो 012,380 मारा: "वर्षगांठ अद्यतन", आप निम्न कार्य करने होंगेकुंजी।
  • नेविगेट स्थानीय कंप्यूटर के लिए नीति>कंप्यूटर कॉन्फ़िगरेशन>व्यवस्थापकीय टेम्पलेट>सिस्टम>फ़ाइल>NTFS
  • जानें NTFS लंबे रास्तों विकल्प को सक्षम और एक क्लिक के साथ इसे सक्षम ।

एक विकल्प के रूप में, आप भी निम्न रजिस्ट्री को क्रियान्वित करते हुए एक ही परिणाम प्राप्त कर सकते हैं आदेश:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\FileSystem] 
"LongPathsEnabled"=dword:00000001 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] 
"LongPathsEnabled"=dword:00000001 

बाद वर्षगांठ अद्यतन

आप एक पोस्ट-वीं वर्षगांठ अद्यतन चला रहे हैं विंडोज 10 बिल्ड (आरटीएम 1067 या नया), आपको निम्न का उपयोग करने की आवश्यकता है:

  • समूह नीति संपादकWindows Key दबाकर और मैन्युअल रूप से gpedit.msc टाइप करके लॉन्च करें, फिर Enter कुंजी दबाएं।
  • नेविगेट स्थानीय कंप्यूटर नीति कंप्यूटर कॉन्फ़िगरेशन व्यवस्थापकीय टेम्पलेट फ़ाइल को>>>सिस्टम>
  • Enable Win32 long paths विकल्प का पता लगाएं और एक क्लिक के साथ इसे सक्षम करें।

यदि आपको इस विषय पर अतिरिक्त विवरण की आवश्यकता है तो आप read this post भी कर सकते हैं।

0

VS2015/project.json बिल्ड + VS2017/CSProj निर्माण ("परियोजना" टैग के अंदर)

http://dan.clarke.name/2017/02/including-excluding-files-from-build-with-vs2017-and-net-core/

बस को बदलने के लिए:

<ItemGroup> 
    <Compile Remove="[ClientAppRoot]\node_modules\**" /> 
    <Content Remove="[ClientAppRoot]\node_modules\**" /> 
    <EmbeddedResource Remove="[ClientAppRoot]\node_modules\**" /> 
    <None Remove="[ClientAppRoot]\node_modules\**" /> 
</ItemGroup> 
0

मुझे मिल गया है, तो आप ले जा सकते हैं आपकी समाधान फ़ाइल में आपके पास मौजूद प्रोजेक्ट में बहुत ही फ़ोल्डर है। त्रुटि इसलिए होती है क्योंकि विंडोज़ में पथ नीति है जो निष्पादन पथ में दिए गए वर्णों की संख्या को सीमित करती है।

client\node_modules\conventional-changelog\node_modules\lodash.assign\node_modules\lodash._basecreatecallback\node_modules\lodash.bind\node_modules\lodash._createwrapper\node_modules\lodash._basecreatewrapper\node_modules\". C:\Work\xxxxxxxxxx\xxxxxxxxxx.xxx\src\client\node_modules\conventional-changelog\node_modules\lodash.assign\node_modules\lodash._basecreatecallback\node_modules\lodash.bind\node_modules\lodash._createwrapper\node_modules\lodash._basecreatewrapper\node_modules\ 

बस कार्य/xxxx फ़ोल्डर में अपनी परियोजना फ़ाइल (सभी संकुल के साथ पूरे समाधान) के लिए कदम है और इस इसे हल होगा।

0

यह अपनी परियोजना की तरह MAX_PATH से अधिक लग रहा है, आपको एक छोटा पथ के लिए अपनी परियोजना को स्थानांतरित करने की कोशिश कर सकते हैं (उदा c: \ src) अधिक जानकारी के लिए, कृपया जाँच here

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