Mam jedno rozwiązanie z 3 projektami WWW, z których 2 chciałbym użyć package.json
(nazwy: "Site" i "SatelliteSite"). Są to wszystkie projekty ASP.NET 4, do których instaluję npm/gulp/bower, które działają dobrze dla jednego projektu, dlatego jestem tak zdezorientowany moim problemem.Wiele projektów Visual Studio 2015 npm
Po zapisaniu package.json
w jednym z dwóch projektów dziennik menedżera pakietów zgaśnie i uruchomi się npm install
. To świetnie, z jednym wyjątkiem.
To, co faktycznie działa, pomimo pobrania zmian w plikach package.json
to tylko "Site" package.json. Po ponownym uruchomieniu Visual Studio, to teraz zbiera "SatelliteSite" i działa z tym package.json
, co jest wspaniałe, ponieważ mam teraz moje zależności od łyka, ale śmieci, jeśli kiedykolwiek potrzebowałem aktualizacji.
Rozładowanie projektu SatelliteSite nie działa tak, jak podczas zapisywania w witrynie, nadal ładuje SatelliteSite package.json
. To prawie tak, jakby "rejestrowało" pierwszy, który widzi, że SatelliteSite ładuje się przed Site, więc po ponownym uruchomieniu, który jest ładowany jako pierwszy) i ignoruje pozostałe, ciągle śledząc zmiany.
Zakładam, że jest to błąd w Visual Studio - ale być może robię coś złego i zastanawiam się, czy ktoś jeszcze napotkał/ma jakieś obejścia?
EDIT: Trochę więcej info, ja przemianowany package.json
w SatelliteSite teraz do innej nazwy, a zapisany witryny package.json
. Zgłasza ten błąd, co pokazuje, że VS zasadniczo ustawia katalog roboczy dla npm na podstawie pierwszego package.json
, z którym się spotyka, niezależnie od projektu.
npm ERR! command "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\Extensions\\Microsoft\\Web Tools\\External\\\\node\\node" "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\Extensions\\Microsoft\\Web Tools\\External\\npm\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd C:\Development\source\Cedita.Site\Cedita.SatelliteSite
npm ERR! node -v v0.10.31
npm ERR! npm -v 1.4.9
npm ERR! path C:\Development\source\Cedita.Site\Cedita.SatelliteSite\package.json
npm ERR! code ENOPACKAGEJSON
Czy próbowałeś uruchomić w jakiś sposób 'npm update --save', aby zaktualizować zmiany? – juanmajmjr
Aby obejść ten problem, wystarczy dodać cel BeforeBuild z instalacją npm w csproj i będzie działał bez względu na wersję wizualną studia lub msbuild. przywróci wszystkie brakujące pakiety przed wykonaniem kompilacji: I właśnie sprawdziłem to z 2 projektami WWW w tym samym rozwiązaniu w VS 2015 i poszło dobrze –
RC nie zainstalował npm na całym świecie, więc nigdzie nie próbowałbym uruchomić npm z (w tym konsoli programisty). Wygląda na to, że RTM rzeczywiście działa na PATH, więc może być uruchamiany w ten sposób - nie przetestowałem go, jeśli nadal jest uszkodzony w RTM, ale przetestuje i wróci. –