J'ai besoin de savoir si le comportement suivant est normal.
Quand je npm install
, chaque package de mon package.json et les dépendances, ne sont pas installés imbriqués plus, mais chaque dépendance est installée dans le node_modules
répertoire. Cela fait mon node_modules
répertoire soufflé et ressemble à ceci:
Cela s'est produit depuis que j'ai mis à jour npm et node.
Maintenant je lance:
npm -v 3.3.6
node -v 4.2.1
python 2.7
windows 7
wamp
Ma package.json
le fichier ressemble à ceci:
{
"private": true,
"devDependencies": {
"gulp": "^3.8.8"
},
"dependencies": {
"laravel-elixir": "^3.0.0",
"bootstrap-sass": "^3.0.0"
}
}
C'est la norme laravel package.json
fichier.
Existe-t-il un moyen d'avoir à nouveau des répertoires imbriqués, parce que je n'aime pas un tel article soufflé avec plus de 100 sous-répertoires.
C'est le nouveau comportement de npm 3
selon ce blog npm .
pdate: Comme Erik Pukinskis l'a mentionné dans les commentaires: Depuis npm 3.5, le support de --legacy-bundling
A été abandonné.
Oui, il existe un moyen d'avoir à nouveau des répertoires imbriqués en modifiant le comportement par défaut de npm (version 3 au moment de la rédaction):
Supprimez le dossier node_modules
Actuellement présent.
Dites à npm d'installer avec le bundle hérité pour cette installation:
npm install --legacy-bundling
Une alternative "permanente":
Définissez votre configuration npm pour toujours utiliser le regroupement hérité ...
npm set legacy-bundling=true
.. et exécutez comme d'habitude:
npm install
Remarque: la récupération des dépendances avec le regroupement hérité prendra beaucoup plus de temps car plusieurs versions différentes des mêmes dépendances seront installées.
Disclaimer: En tant qu'utilisateur non-Windows, je n'ai pas besoin de dépendances plates et je veux trouver facilement les dépendances auto-déclarées en faveur de la déduplication automatique. Étant donné que l'installation des dépendances npm sans regroupement hérité prend déjà un temps incroyable, je suis généralement prêt à passer ces minutes d'installation supplémentaires. Il revient à 5 répertoires de plus de 700+ (...) dans une configuration Laravel Elixir avec bootstrap (non-sass), font-awesome et jquery ajouté.