Obecnie próbuję migrować stary projekt ASP.NET WebSite do Visual Studio 2015. Chciałbym użyć NPM/Gulp do automatycznego kompilacji plików LESS do CSS (zadanie zostało wykonane przez WebEssentials w VS 2013).Zmień lokalizację folderu node_modules
Dodałem plik package.json
do projektu, aby załadować wymagane komponenty. Spowoduje to utworzenie folderu node_modules
w katalogu głównym projektu WebSite i tutaj zaczyna się mój problem:
Ponieważ projekty WebSite nie mają pliku projektu, wszystkie pliki (i podkatalogi) znajdują się w folderze głównym projektu , są automatycznie częścią projektu. Z powodu głęboko zagnieżdżonej struktury katalogów wewnątrz node_modules
prowadzi to do błędów z powodu zbyt długich nazw ścieżek.
Łatwym rozwiązaniem jest ustawienie atrybutu hidden
w folderze node_modules
(ale musi to być wykonane ręcznie przez każdego programistę).
Czy istnieje sposób, aby powiedzieć NPM, aby umieścić moduły węzłów w innym katalogu, np. jeden poziom powyżej projektu (..\node_modules
), gdzie znajduje się plik rozwiązania?
Czy jest możliwe ustawienie ukrytego atrybutu w folderze z zadania-gulp (uruchamianego po załadowaniu projektu)?
Można podejść do problemu na odwrót. Utwórz katalog główny swojej witryny w innym miejscu i użyj polecenia gulp do kompilowania źródeł i zapisania ich w folderze witryny (np. 'Public') , a następnie uruchom polecenie npm/gulp z katalogu rozwiązania, a następnie niech punkt wejścia na twojej stronie wskaże folder 'public'. – Rik
@Rik: Nie jestem pewien, czy jest to możliwe z projektem ASP.NET * WebSite *, ale pomyślę o tym. Ponadto, jeśli to możliwe, wolałbym nie wprowadzać zbyt wielu zmian w tym starym projekcie. – M4N
Ale dodajesz gdzieś pliki npm. wybierz dowolną lokalizację, która nie znajduje się w twoim folderze i użyj 'gulp.src(). pipe (dostuff) .gulp.dest (path/to/website/dir)' stamtąd. Z gulp.dest() możesz skopiować pliki w dowolne miejsce. Nie wymaga żadnych zmian strukturalnych. – Rik