Pourquoi avons-nous besoin pour installer gulp globalement et localement?
2 manuels sur gulp dire que j'ai besoin d'installer gorgée d'abord à l'échelle mondiale (avec indicateur g) et puis une fois de plus à l'échelle locale. Pourquoi n'ai-je besoin?
- Son propre projet "mise en route" de la page, dit la même chose. (Ne dites pas pourquoi.)
- Je souhaite que la ngp pourrait utiliser à l'échelle mondiale installé un paquet de dépendance qui est la même version que le forfait local. 5 MO de glup trucs pour chaque répertoire du projet :/
- Pas de guarantes, mais... ➪ stackoverflow.com/a/25879563/444255
Vous devez vous connecter pour publier un commentaire.
Lors de l'installation d'un outil à l'échelle mondiale, c'est pour être utilisé par un utilisateur comme un utilitaire de ligne de commande n'importe où, y compris à l'extérieur du nœud de projets. Mondial installe pour un nœud de projet sont mauvais parce qu'ils font de déploiement plus difficile.
mnp 5.2+
La
npx
utilitaire fourni avecnpm
5.2
résout ce problème. Avec elle, vous pouvez invoquer installé localement, les services publics, comme à l'échelle mondiale installé les utilitaires (mais vous devez lancer la commande avecnpx
). Par exemple, si vous voulez vous prévaloir installé localementeslint
, vous pouvez le faire:mnp < 5.2
Lorsqu'utilisé dans une
script
domaine de votre colis.json,npm
recherchesnode_modules
de l'outil ainsi que dans le monde des modules installés, de sorte que le local d'installation est suffisante.Donc, si vous êtes heureux avec votre colis.json):
etc. et en cours d'exécution avec
npm run test
, alors vous ne devriez pas besoin de l'installation globale à tous.Les deux méthodes sont utiles pour amener les gens mis en place avec votre projet depuis
sudo
n'est pas nécessaire. Cela signifie également quegulp
sera mise à jour lorsque la version est tombé dans le package.json, donc tout le monde va être en utilisant la même version de gulp lors de l'élaboration de votre projet.Addendum:
Il semble que gulp a un comportement inhabituel lorsque utilisé dans le monde entier. Lorsqu'il est utilisé comme une installation globale, gulp cherche installé localement gulp pour passer le contrôle. Par conséquent, une gorgée d'installation globale nécessite une gorgée d'installation locale à travailler. La réponse ci-dessus se tient encore bien. Local installe sont toujours préférables mondial installe.
./node_modules/.bin/gulp
.gulp
etcoffee
donc les commandes de travail de mon nœud racine du projet (par exemple.alias gulp="node_modules/.bin/gulp"
). De cette façon, les commandes sont faciles à utiliser en cas de besoin et globale/locale de la version conflits ne se produisent pas.gulp
, il me donne le message d'erreur suivantLocal gulp not found in ...
. Comme je le comprends, il faut d'abord regarder locaux node_modules et si elle ne trouve pas, il faut ensuite examiner globalement, modules installés, n'est-ce pas? Merci!sudo npm
n'est habituellement pas nécessaire pour l'installation globale soit, n'est pas recommandé parnpm
's créateur, vous devez définir répertoire de droit à la propriété plutôtnpm i -D gulp gulp-plugin1 gulp-plugin2 ...
.sudo
à utilisernpm -g
vous devriez probablement votre propre mnp répertoire et de remédier à ce problème. stackoverflow.com/questions/16724259/npm-command-sudo-or-notTLDR; Voici pourquoi:
Essentiellement, lorsque vous installez
gulp
localement le script n'est pas dans votrePATH
et donc vous ne pouvez pas simplement tapergulp
et attendent le shell pour retrouver la commande. En l'installant à l'échelle mondiale, l'gulp
script pénètre dans votrePATH
parce que le mondialnode/bin/
répertoire est très probablement sur votre chemin.À l'égard de votre région dépendances cependant,
gulp
de l'utilisation de vos installé localement version de lui-même pour exécuter legulpfile.js
.gulp
paquet est nécessaire pour mettrenode_modules/.bin/gulp
en chemin. Le stockage n'est pas cher mais de jeter MO pour la simulation d'un lien symbolique est de l'OMI pure négligence.Vous pouvez lier à l'échelle mondiale installée
gulp
localement avecnpm link
.La question "Pourquoi avons-nous besoin pour installer gulp globalement et localement?" peut être décomposé en deux questions suivantes:
Pourquoi ai-je besoin pour installer gulp localement si je l'ai déjà installé à l'échelle mondiale?
Pourquoi ai-je besoin pour installer gulp globalement si je l'ai déjà installé localement?
Plusieurs autres ont fourni d'excellentes réponses à ces questions dans l'isolement, mais j'ai pensé qu'il serait avantageux de regrouper les informations dans une réponse unifiée.
Pourquoi ai-je besoin pour installer gulp localement si je l'ai déjà installé à l'échelle mondiale?
L'installation d'gulp localement, est constitué de plusieurs raisons:
Pourquoi ai-je besoin pour installer gulp globalement si je l'ai déjà installé localement?
Pour éviter l'installation en local, vous pouvez utiliser
npm link [package]
, mais le lien de commande ainsi que leinstall --global
commande ne semble pas à l'appui de la--save-dev
option qui signifie qu'il ne semble pas être un moyen facile d'installer gulp à l'échelle mondiale, puis ajouter facilement quelle que soit la version de votre forfait local.fichier json.En fin de compte, je crois qu'il est plus logique d'avoir la possibilité d'utiliser des modules globaux pour éviter d'avoir à dupliquer l'installation des outils communs à l'ensemble des projets, en particulier dans le cas des outils de développement tels que grunt, gulp, jshint, etc. Malheureusement, il semble que vous finissent par se battre les outils d'un peu quand vous allez à l'encontre du grain.
gulp
est un outil de développement, pas d'un projet de dépendance. Je ne livrons pasgit
avec mes dépôts, oucomposer
avec mon serveur app!Techniquement, vous n'avez pas besoin de l'installer à l'échelle mondiale si l'
node_modules
dossier de votre installation locale est dans votrePATH
. Généralement ce n'est pas une bonne idée.Sinon, si
npm test
référencesgulp
alors vous pouvez simplement tapernpm test
et il va exécuter le local clin d'oeil.Je n'ai jamais installé gulp à l'échelle mondiale -- je pense que c'est une mauvaise forme.
Je ne suis pas sûr si notre problème est directement lié à l'installation de gulp seulement localement. Mais nous avons dû installer un tas de dépendances nous-mêmes. Cela a conduit à un "gros paquet".json et nous ne sommes pas sûr si c'est vraiment une excellente idée d'installer gulp seulement localement. Nous avons eu à faire à cause de notre environnement de construction. Mais je ne le recommande pas l'installation de gulp globalement pas si elle n'est pas absolument nécessaire. Nous avons été confrontés à des problèmes similaires, comme décrit dans la suite de blog-post
Aucun de ces problèmes se posent pour l'un de nos développeurs sur leurs machines locales parce qu'ils sont tous installés gulp à l'échelle mondiale. Sur le système de construction, nous avons eu les problèmes décrits. Si quelqu'un est intéressé je pourrais plonger plus profondément dans cette question. Mais pour l'instant je voulais juste mentionner que ce n'est pas un chemin facile à installer gulp seulement localement.
Juste parce que je n'en ai pas vu ici, si vous êtes sous MacOS ou Linux, je vous suggère de l'ajouter à votre CHEMIN d'accès (dans votre bashrc etc):
Avec ce chemin d'accès relatif entrée, si vous êtes assis dans le dossier racine de n'importe quel nœud du projet, vous pouvez exécuter n'importe quel outil de ligne de commande (eslint, gulp, etc. etc.) sans se soucier de "global installe" ou
npm run
etc.Une fois que je l'ai fait, je n'ai jamais installé un module à l'échelle mondiale.