我在Visual Studio 2015 CTP6中使用MVC6 + Aurelia項目,並且遇到了一些有趣的事情。VS2015中的嵌套node_modules出現「FullPath can not be applied」錯誤CTP6
我的node_modules
默認在項目根目錄下,一切正常。但是,我想保持源代碼樹更有組織,並將node_modules
,jspm_modules
和相關的東西移動到子文件夾 - 例如。 MyApp\client\node_modules
等
但現在Visual Studio停止加載項目。這裏的例外來自「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文件夾。大多數Windows工具,實用程序和 shell最多不能處理超過260個字符的文件和文件夾路徑 。
...這似乎是closed as won't fix對我說:
節點是不會改變的,所以這是不是一個真正的節點問題。 問題不在於模塊加載語義,而在於模塊 安裝語義。 (這兩者是相關的,但不完全相同。)
但我不明白是怎麼來的項目被加載在首位,因爲一些路徑肯定超過260個符號,即使node_modules
是該項目下根!
是否有一些設置在配置或東西,這有助於Visual Studio 2015加載項目與node_modules
,發生了什麼?
,這可能會進一步惡化。我會建議在github上提交一個問題,微軟團隊非常積極響應並且打開它來追蹤這些情況。對於它的價值,有一些人正在使用aurelia來處理NET5的流程,因爲wwwroot文件系統,所以也許你也應該在https://gitter.im/Aurelia/Discuss < - 非常棒的傢伙那裏看看。 – 2015-04-07 19:00:22