Sto giocando con il progetto MVC6 + Aurelia in Visual Studio 2015 CTP6 e ho trovato qualcosa di interessante.Errore "FullPath non può essere applicato" per node_modules nidificati in VS2015 CTP6
Il mio node_modules
è di default nella radice del progetto e tutto funziona correttamente. Tuttavia, mi piacerebbe mantenere l'albero dei sorgenti un po 'più organizzato e spostato node_modules
, jspm_modules
e materiale correlato in una sottocartella - ad es. MyApp\client\node_modules
ecc.
Ma ora Visual Studio interrompe il caricamento del progetto. Ecco eccezione da "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()
A quanto pare il problema è nel node_modules
percorso ricorsivo essere troppo lungo - e non c'è bug #6960 nel Nodo inseguitore
nodo ha bisogno di un approccio alternativo alla infinita, cartelle annidate in modo ricorsivo node_modules su Windows. La maggior parte degli strumenti, delle utilità e delle shell di Windows non possono gestire percorsi di file e cartelle più lunghi di 260 caratteri al massimo.
... che sembra closed as won't fix a me:
nodo non sta per cambiare, quindi questo non è davvero un problema Node. Il problema non è con la semantica di caricamento del modulo, ma con la semantica di installazione del modulo . (I due sono correlati, ma non identici.)
Ma allora non capisco come mai il progetto stava caricando in primo luogo, perché alcuni percorsi sono sicuramente più di 260 simboli anche se node_modules
è nell'ambito del progetto radice!
C'è qualche impostazione in config o qualcosa che aiuti Visual Studio 2015 a caricare il progetto con node_modules
, cosa sta succedendo?
questo può essere sempre peggio. Suggerirò di presentare un problema su github, il team Microsoft è molto reattivo e aperto per rintracciare quegli scenari. Per quello che vale, ci sono alcuni ragazzi che lavorano sul flusso di NET5 con aurelia a causa del file system wwwroot, quindi forse dovresti anche dare un'occhiata a https://gitter.im/Aurelia/Discuss <- ragazzi fantastici lì. –