Lorsqu'un outil est installé globalement, il doit être utilisé par un utilisateur comme un utilitaire de ligne de commande n'importe où, y compris en dehors des projets node. Les installations globales pour un projet node sont mauvais parce qu'ils rendent le déploiement plus difficile.
npm 5.2+
El npx
fourni avec npm
5.2
résout ce problème. Avec lui, vous pouvez invoquer les utilitaires installés localement comme des utilitaires installés globalement (mais vous devez commencer la commande par npx
). Par exemple, si vous souhaitez invoquer un programme eslint
que vous pouvez faire :
npx eslint .
npm < 5.2
Lorsqu'il est utilisé dans un script
de votre package.json, npm
recherches node_modules
pour l'outil ainsi que les modules installés globalement, donc l'installation locale est suffisante.
Donc, si vous êtes satisfait de (dans votre package.json) :
"devDependencies": {
"gulp": "3.5.2"
}
"scripts": {
"test": "gulp test"
}
etc. et de fonctionner avec npm run test
alors vous ne devriez pas avoir besoin de l'installation globale du tout.
Les deux méthodes sont utiles pour mettre les gens en contact avec votre projet puisque sudo
n'est pas nécessaire. Cela signifie également que gulp
sera mis à jour lorsque la version sera modifiée dans le package.json, de sorte que tout le monde utilisera la même version de gulp lors du développement de votre projet.
Addendum :
Il semble que gulp ait un comportement inhabituel lorsqu'il est utilisé de manière globale. Lorsqu'il est utilisé en tant qu'installation globale, gulp recherche un gulp installé localement pour lui passer le contrôle. Par conséquent, une installation globale de gulp nécessite une installation locale de gulp pour fonctionner. La réponse ci-dessus reste cependant valable. Les installations locales sont toujours préférables aux installations globales.
12 votes
Le projet lui-même "Page "Mise en route dit la même chose. (Il ne dit pas non plus pourquoi.)
11 votes
J'aimerais que npm puisse utiliser un paquet de dépendance installé globalement qui a la même version que le paquet local. 5MB de trucs glup pour chaque répertoire de projet :/
0 votes
@Ciantic Pas de garanties, mais... stackoverflow.com/a/25879563/444255