"npm install" instaluje wszystkie zależności w katalogu modułów węzła, zamiast je zagnieżdżać
Muszę wiedzieć, czy poniższe zachowanie jest normalne.
Kiedy ja npm install
, Każda paczka z mojego pakietu.json i zależności nie są już instalowane zagnieżdżone , ale każda zależność jest instalowana w katalogu node_modules
. To sprawia, że mój node_modules
katalog jest rozwalony i wygląda tak:
Stało się to odkąd zaktualizowałem npm i node.
Teraz biegnę:
npm -v 3.3.6
node -v 4.2.1
python 2.7
windows 7
wamp
Mój plik package.json
wygląda tak:
{
"private": true,
"devDependencies": {
"gulp": "^3.8.8"
},
"dependencies": {
"laravel-elixir": "^3.0.0",
"bootstrap-sass": "^3.0.0"
}
}
To standardowy plik laravel package.json
.
Czy jest sposób, aby mieć zagnieżdżone katalogi ponownie, ponieważ nie podoba mi się taki wysadzony artykuł z ponad 100 podkatalogów.
2 answers
To Nowe zachowanie npm 3
zgodnie z ten blog npm .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-02 18:43:01
Aktualizacja: jak wspomniał Erik Pukinskis w komentarzach:
Od npm 3.5 wsparcie dla --legacy-bundling
zostało wycofane.
Tak, istnieje sposób, aby ponownie zagnieżdżać katalogi, zmieniając domyślne zachowanie npm (wersja 3 od tego zapisu):
Usuń aktualnie obecny katalog
node_modules
.-
Powiedz npm, aby zainstalować z pakietem legacy dla tej jednej instalacji:
npm install --legacy-bundling
A " stały" "alternatywa": {]}
-
Ustaw konfigurację npm tak, aby zawsze używała pakietu starszego typu...
npm set legacy-bundling=true
-
.. i biegać jak zwykle:
npm install
Uwaga: pobieranie zależności ze starszymi pakietami zajmie dużo więcej czasu, ponieważ zostanie zainstalowanych wiele różnych wersji tych samych zależności.
Disclaimer: jako użytkownik spoza Windows nie mam potrzeby płaskich zależności i chcę znaleźć samodzielne deklarowane zależności z łatwością na korzyść automatycznego dedupingu. Ponieważ instalacja zależności npm bez łączenia starszych pakietów zajmuje już niewiarygodną ilość czasu, zazwyczaj jestem gotów poświęcić te dodatkowe minuty na instalację. Wraca do 5 katalogów z poprzednich 700 + (...) w konfiguracji Laravel Elixir z bootstrap (non-sass), dodano font-awesome i jquery.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-10 22:36:31