Comment définir l'emplacement personnalisé pour l'installation locale du paquet npm?
est-il possible de spécifier la destination d'un paquet personnalisé pour npm install
, soit par un drapeau de commande, soit par une variable d'environnement?
par défaut, les installations npm locales finissent par node_modules
dans le répertoire courant, mais je veux qu'il s'installe dans node_modules
dans un répertoire différent, par exemple vendor/node_modules
. Comment puis-je le faire?
5 réponses
TL; DR
vous pouvez le faire en utilisant le drapeau --prefix
et le drapeau --global
*.
pje@friendbear:~/foo $ npm install bower -g --prefix ./vendor/node_modules
bower@0.7.0 /Users/pje/foo/vendor/node_modules/bower
* même s'il s'agit d'une installation "globale", les bacs installés ne seront pas accessibles par la ligne de commande à moins que ~/foo/vendor/node_modules
n'existe dans PATH
.
TL; R
chaque attribut configurable de npm
peut être défini dans l'un des six endroits différents. Dans l'ordre de priorité:
- Drapeaux En Ligne De Commande:
--prefix ./vendor/node_modules
- Variables D'Environnement:
NPM_CONFIG_PREFIX=./vendor/node_modules
- fichier de configuration de L'utilisateur:
$HOME/.npmrc
ouuserconfig
param - Global Fichier de configuration:
$PREFIX/etc/npmrc
ouuserconfig
param - Fichier De Configuration Intégré:
path/to/npm/itself/npmrc
- configuration par Défaut: node_modules/npmconf/config-defs.js
par défaut, les paquets installés localement vont dans ./node_modules
. celles globales vont dans la variable de configuration prefix
( /usr/local
par défaut).
Vous pouvez exécuter npm config list
pour voir votre configuration actuelle et npm config edit
pour la modifier.
PS
en général, npm
de la documentation est vraiment utile. La section dossiers est une bonne vue d'ensemble de la structure de npm et la section config répond à cette question.
si vous voulez cela dans config, vous pouvez définir npm config comme suit:
npm config set prefix "$(pwd)/vendor/node_modules"
ou
npm config set prefix "$HOME/vendor/node_modules"
Vérifiez votre configuration avec
npm config ls -l
ou comme @pje dit et utilisez le --prefix
drapeau
pour OSX, vous pouvez aller sur le $HOME
de votre utilisateur (probablement /Users/yourname/) et, s'il n'existe pas déjà, créer un fichier .npmrc
(un fichier que la npm utilise pour la configuration de l'utilisateur), et créer un répertoire pour vos paquets npm à installer dans (par exemple, /Users/yourname/npm). Dans que .npmrc fichier, définir "prefix" à votre nouveau répertoire npm, qui sera l'endroit où les paquets npm installés" globalement "seront installés; ces paquets" globaux " seront, évidemment, disponibles seulement pour votre compte d'utilisateur.
In .npmrc:
prefix=${HOME}/npm
lancez ensuite cette commande depuis la ligne de commande:
npm config ls -l
il devrait donner une sortie à la fois sur votre propre configuration locale et sur la configuration globale npm, et vous devriez voir votre configuration de préfixe locale réfléchie, probablement en haut de la longue liste de sortie.
pour la sécurité, je recommande ceci approche pour configurer le comportement npm de votre compte d'utilisateur sur la conversion de vos dossiers /usr/local
, que j'ai vu recommandé ailleurs.
après avoir cherché ceci moi-même voulant que plusieurs projets avec des dépendances partagées soient plus secs, j'ai trouvé:
- installer localement est le mode Nodal pour tout ce que vous voulez utiliser via
require()
- installer globalement est pour les binaires que vous voulez dans votre chemin, mais n'est pas destiné à quoi que ce soit via
require()
- L'utilisation d'un préfixe signifie que vous devez ajouter les chemins appropriés
bin
etman
pour$PATH
-
npm link
( info ) vous permet d'utiliser une installation locale comme source pour globals
→ coller au chemin du noeud et installer localement
réf:
sur Windows 7 par exemple, l'ensemble suivant de commandes/opérations pourrait être utilisé.
créer une variable d'environnement personnel, double backslashes sont obligatoires:
- nom Variable:
%NPM_HOME%
- valeur Variable:
C:\SomeFolder\SubFolder\
maintenant, définissez les valeurs de configuration aux nouveaux dossiers (noms de fichiers illustrés):
- Définir le mécanisme national de prévention dossier
npm config set prefix "%NPM_HOME%\npm"
- définir le dossier npm-cache
npm config set cache "%NPM_HOME%\npm-cache"
- Définir le mnp dossier temporaire
npm config set tmp "%NPM_HOME%\temp"
en option, vous pouvez purger le contenu des dossiers originaux avant la configuration est modifiée.
-
supprimer le npm-cache
npm cache clear
-
Liste des modules npm
npm -g ls
-
supprimer les modules npm
npm -g rm name_of_package1 name_of_package2