Node.js
npm
Recherche…
Introduction
Node Package Manager (npm) offre les deux fonctionnalités principales suivantes: Référentiels en ligne pour les packages / modules node.js qui peuvent être recherchés sur search.nodejs.org. Utilitaire de ligne de commande pour installer les packages Node.js, faire la gestion des versions et la gestion des dépendances des packages Node.js.
Syntaxe
- npm <command> où <command> est l'un des suivants:
- ajouter un utilisateur
- adduser
- apihelp
- auteur
- poubelle
- bogues
- c
- cache
- achèvement
- config
- ddp
- déduplication
- désapprouver
- docs
- modifier
- explorer
- FAQ
- trouver
- trouver des dupes
- obtenir
- Aidez-moi
- aide-recherche
- maison
- je
- installer
- Info
- init
- isntall
- problèmes
- la
- lien
- liste
- ll
- ln
- s'identifier
- ls
- dépassé
- propriétaire
- pack
- préfixe
- prune
- publier
- r
- rb
- reconstruire
- retirer
- repo
- redémarrer
- rm
- racine
- script de lancement
- s
- se
- chercher
- ensemble
- montrer
- film rétractable
- étoile
- étoiles
- début
- Arrêtez
- sous-module
- marque
- tester
- tst
- ONU
- désinstaller
- dissocier
- non publié
- unstar
- en haut
- mettre à jour
- v
- version
- vue
- qui suis je
Paramètres
Paramètre | Exemple |
---|---|
accès | npm publish --access=public |
poubelle | npm bin -g |
modifier | npm edit connect |
Aidez-moi | npm help init |
init | npm init |
installer | npm install |
lien | npm link |
prune | npm prune |
publier | npm publish ./ |
redémarrer | npm restart |
début | npm start |
Arrêtez | npm start |
mettre à jour | npm update |
version | npm version |
Installer des paquets
introduction
Package est un terme utilisé par npm pour désigner les outils que les développeurs peuvent utiliser pour leurs projets. Cela inclut tout, des bibliothèques et des frameworks tels que jQuery et AngularJS aux exécuteurs de tâches tels que Gulp.js. Les paquets seront fournis dans un dossier généralement appelé node_modules
, qui contiendra également un fichier package.json
. Ce fichier contient des informations concernant tous les packages, y compris les dépendances, qui sont des modules supplémentaires nécessaires pour utiliser un package particulier.
Npm utilise la ligne de commande pour installer et gérer les packages, de sorte que les utilisateurs essayant d'utiliser npm doivent être familiarisés avec les commandes de base de leur système d'exploitation: parcourir les répertoires et voir le contenu des répertoires.
Installation de NPM
Notez que pour installer des packages, NPM doit être installé.
La méthode recommandée pour installer NPM consiste à utiliser l'un des programmes d'installation de la page de téléchargement de Node.js. Vous pouvez vérifier si vous avez déjà installé node.js en exécutant la commande npm -v
ou npm version
.
Après avoir installé NPM via le programme d'installation de Node.js, assurez-vous de vérifier les mises à jour. Cela est dû au fait que NPM est mis à jour plus fréquemment que le programme d'installation de Node.js. Pour vérifier les mises à jour, exécutez la commande suivante:
npm install npm@latest -g
Comment installer les paquets
Pour installer un ou plusieurs packages, procédez comme suit:
npm install <package-name>
# or
npm i <package-name>...
# e.g. to install lodash and express
npm install lodash express
Note : Ceci installera le paquet dans le répertoire dans lequel se trouve la ligne de commande, il est donc important de vérifier si le répertoire approprié a été choisi
Si vous avez déjà un fichier package.json
dans votre répertoire de travail actuel et que des dépendances y sont définies, alors npm install
résoudra et installera automatiquement toutes les dépendances répertoriées dans le fichier. Vous pouvez également utiliser la version abrégée de la commande npm install
: npm i
Si vous souhaitez installer une version spécifique d'un package, utilisez:
npm install <name>@<version>
# e.g. to install version 4.11.1 of the package lodash
npm install [email protected]
Si vous souhaitez installer une version correspondant à une plage de version spécifique, utilisez:
npm install <name>@<version range>
# e.g. to install a version which matches "version >= 4.10.1" and "version < 4.11.1"
# of the package lodash
npm install lodash@">=4.10.1 <4.11.1"
Si vous souhaitez installer la dernière version, utilisez:
npm install <name>@latest
Les commandes ci-dessus rechercheront les paquets dans le dépôt central npm
à npmjs.com . Si vous ne souhaitez pas installer depuis le registre npm
, d'autres options sont prises en charge, telles que:
# packages distributed as a tarball
npm install <tarball file>
npm install <tarball url>
# packages available locally
npm install <local path>
# packages available as a git repository
npm install <git remote url>
# packages available on GitHub
npm install <username>/<repository>
# packages available as gist (need a package.json)
npm install gist:<gist-id>
# packages from a specific repository
npm install --registry=http://myreg.mycompany.com <package name>
# packages from a related group of packages
# See npm scope
npm install @<scope>/<name>(@<version>)
# Scoping is useful for separating private packages hosted on private registry from
# public ones by setting registry for specific scope
npm config set @mycompany:registry http://myreg.mycompany.com
npm install @mycompany/<package name>
Généralement, les modules seront installés localement dans un dossier nommé node_modules
, qui se trouve dans votre répertoire de travail actuel. C'est le répertoire que require()
pour charger les modules afin de les mettre à votre disposition.
Si vous avez déjà créé un fichier package.json
, vous pouvez utiliser l' --save
( --save
-S
) ou l'une de ses variantes pour ajouter automatiquement le package installé à votre package.json
tant que dépendance. Si quelqu'un installe votre paquet, npm
lira automatiquement les dépendances du fichier package.json
et installera les versions listées. Notez que vous pouvez toujours ajouter et gérer vos dépendances en éditant le fichier ultérieurement. Il est donc recommandé de suivre les dépendances, par exemple en utilisant:
npm install --save <name> # Install dependencies
# or
npm install -S <name> # shortcut version --save
# or
npm i -S <name>
Pour installer les packages et les enregistrer uniquement s'ils sont nécessaires au développement, pas pour les exécuter, pas s'ils sont nécessaires à l'exécution de l'application, suivez la commande suivante:
npm install --save-dev <name> # Install dependencies for development purposes
# or
npm install -D <name> # shortcut version --save-dev
# or
npm i -D <name>
Installation de dépendances
Certains modules fournissent non seulement une bibliothèque à utiliser, mais fournissent également un ou plusieurs fichiers binaires destinés à être utilisés via la ligne de commande. Bien que vous puissiez toujours installer ces packages localement, il est souvent préférable de les installer globalement pour que les outils de ligne de commande puissent être activés. Dans ce cas, npm
liera automatiquement les fichiers binaires aux chemins appropriés (par exemple /usr/local/bin/<name>
) afin qu'ils puissent être utilisés à partir de la ligne de commande. Pour installer un package globalement, utilisez:
npm install --global <name>
# or
npm install -g <name>
# or
npm i -g <name>
# e.g. to install the grunt command line tool
npm install -g grunt-cli
Si vous souhaitez voir une liste de tous les packages installés et de leurs versions associées dans l'espace de travail actuel, utilisez:
npm list
npm list <name>
L'ajout d'un argument de nom facultatif permet de vérifier la version d'un package spécifique.
Remarque: Si vous rencontrez des problèmes de permission en essayant d'installer un module npm globalement, résistez à la tentation de sudo npm install -g ...
un sudo npm install -g ...
pour résoudre le problème. Accorder des scripts tiers pour s'exécuter sur votre système avec des privilèges élevés est dangereux. Le problème de la permission peut signifier que vous avez un problème avec la façon dont npm
été installé. Si vous êtes intéressé par l'installation de Node dans des environnements utilisateur en bac à sable, vous pouvez essayer d'utiliser nvm .
Si vous disposez d'outils de génération ou d'autres dépendances de développement uniquement (par exemple Grunt), vous ne souhaiterez peut-être pas les regrouper avec l'application que vous déployez. Si tel est le cas, vous voudrez l’avoir comme une dépendance de développement, qui est répertoriée dans le package.json
sous devDependencies
. Pour installer un package en tant que dépendance de développement uniquement, utilisez --save-dev
(ou -D
).
npm install --save-dev <name> // Install development dependencies which is not included in production
# or
npm install -D <name>
Vous verrez que le paquet est ensuite ajouté aux devDependencies
de votre package.json
.
Pour installer des dépendances d’un projet node.js téléchargé / cloné, vous pouvez simplement utiliser
npm install
# or
npm i
npm lit automatiquement les dépendances à partir de package.json
et les installe.
MNP derrière un serveur proxy
Si votre accès Internet se fait via un serveur proxy, vous devrez peut-être modifier les commandes npm install qui accèdent aux référentiels distants. npm utilise un fichier de configuration qui peut être mis à jour via la ligne de commande:
npm config set
Vous pouvez localiser vos paramètres de proxy depuis le panneau de configuration de votre navigateur. Une fois que vous avez obtenu les paramètres de proxy (URL du serveur, port, nom d'utilisateur et mot de passe); vous devez configurer vos configurations npm comme suit.
$ npm config set proxy http://<username>:<password>@<proxy-server-url>:<port>
$ npm config set https-proxy http://<username>:<password>@<proxy-server-url>:<port>
username
, password
, port
champs de port
sont facultatifs. Une fois ces paramètres définis, votre npm install
npm i -g
, npm i -g
etc. fonctionnerait correctement.
Portées et référentiels
# Set the repository for the scope "myscope"
npm config set @myscope:registry http://registry.corporation.com
# Login at a repository and associate it with the scope "myscope"
npm adduser --registry=http://registry.corporation.com --scope=@myscope
# Install a package "mylib" from the scope "myscope"
npm install @myscope/mylib
Si le nom de votre propre package commence par @myscope
et que la portée "myscope" est associée à un autre référentiel, npm publish
plutôt votre package sur ce référentiel.
Vous pouvez également conserver ces paramètres dans un fichier .npmrc
:
@myscope:registry=http://registry.corporation.com
//registry.corporation.com/:_authToken=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxx
Ceci est utile lors de l'automatisation de la construction sur un serveur CI
Désinstallation des paquets
Pour désinstaller un ou plusieurs packages installés localement, utilisez:
npm uninstall <package name>
La commande de désinstallation pour npm comporte cinq alias pouvant également être utilisés:
npm remove <package name>
npm rm <package name>
npm r <package name>
npm unlink <package name>
npm un <package name>
Si vous souhaitez supprimer le package du fichier package.json
dans le cadre de la désinstallation, utilisez l'indicateur --save
(raccourci: -S
):
npm uninstall --save <package name>
npm uninstall -S <package name>
Pour une dépendance de développement, utilisez le drapeau --save-dev
(raccourci: -D
):
npm uninstall --save-dev <package name>
npm uninstall -D <package name>
Pour une dépendance facultative, utilisez l' --save-optional
(raccourci: -O
):
npm uninstall --save-optional <package name>
npm uninstall -O <package name>
Pour les packages installés globalement, utilisez le drapeau --global
(raccourci: -g
):
npm uninstall -g <package name>
Versioning sémantique de base
Avant de publier un package, vous devez le mettre à jour. npm prend en charge la gestion des versions sémantiques , ce qui signifie qu'il existe des versions correctives, mineures et majeures .
Par exemple, si votre package est à la version 1.2.3 pour modifier la version, vous devez:
-
npm version patch
:npm version patch
=> 1.2.4 -
npm version minor
:npm version minor
=> 1.3.0 -
npm version major
:npm version major
=> 2.0.0
Vous pouvez également spécifier une version directement avec:
npm version 3.1.4
=> 3.1.4
Lorsque vous définissez une version de package utilisant l'une des commandes npm ci-dessus, npm modifie le champ de version du fichier package.json, le valide et crée également un nouveau tag Git avec la version précédée d'un "v", comme si vous 'ai émis la commande:
git tag v3.1.4
Contrairement à d'autres gestionnaires de paquetages comme Bower, le registre npm ne repose pas sur la création de balises Git pour chaque version. Mais si vous aimez utiliser les balises, n'oubliez pas de pousser la balise nouvellement créée après avoir heurté la version du paquet:
git push origin master
(pour pousser le changement vers package.json)
git push origin v3.1.4
(pour pousser la nouvelle balise)
Ou vous pouvez le faire d'un seul coup avec:
git push origin master --tags
Configuration d'une configuration de package
Les configurations de package Node.js sont contenues dans un fichier appelé package.json
que vous pouvez trouver à la racine de chaque projet. Vous pouvez configurer un nouveau fichier de configuration en appelant:
npm init
Cela va essayer de lire le répertoire de travail actuel pour les informations du référentiel Git (s'il existe) et les variables d'environnement pour essayer de compléter automatiquement certaines des valeurs des espaces réservés pour vous. Sinon, il fournira une boîte de dialogue de saisie pour les options de base.
Si vous souhaitez créer un package.json
avec les valeurs par défaut, utilisez:
npm init --yes
# or
npm init -y
Si vous créez un package.json
pour un projet que vous ne publierez pas en tant que package npm (uniquement dans le but de rassembler vos dépendances), vous pouvez transmettre cette intention dans votre fichier package.json
:
- Définissez éventuellement la propriété
private
sur true pour empêcher toute publication accidentelle. - Définissez éventuellement la propriété de
license
sur "UNLICENSED" pour refuser aux autres le droit d'utiliser votre package.
Pour installer un paquet et l'enregistrer automatiquement dans votre package.json
, utilisez:
npm install --save <package>
Le package et les métadonnées associées (telles que la version du package) apparaîtront dans vos dépendances. Si vous enregistrez en tant que dépendance de développement (en utilisant --save-dev
), le package apparaîtra plutôt dans vos devDependencies
.
Avec ce package.json
bare-bones, vous rencontrerez des messages d'avertissement lors de l'installation ou de la mise à niveau des packages, vous indiquant qu'il vous manque une description et le champ du référentiel. Bien qu'il soit prudent d'ignorer ces messages, vous pouvez les supprimer en ouvrant le package.json dans n'importe quel éditeur de texte et en ajoutant les lignes suivantes à l'objet JSON:
[...]
"description": "No description",
"repository": {
"private": true
},
[...]
Publication d'un package
Tout d'abord, assurez-vous d'avoir configuré votre paquet (comme indiqué dans Configuration d'une configuration de paquet ). Ensuite, vous devez être connecté à npmjs.
Si vous avez déjà un utilisateur npm
npm login
Si vous n'avez pas d'utilisateur
npm adduser
Pour vérifier que votre utilisateur est enregistré dans le client actuel
npm config ls
Après cela, quand votre paquet est prêt à être publié, utilisez
npm publish
Et vous avez terminé.
Si vous devez publier une nouvelle version, assurez-vous de mettre à jour la version de votre package, comme indiqué dans la section Gestion des versions sémantiques . Sinon, npm
ne vous laissera pas publier le paquet.
{
name: "package-name",
version: "1.0.4"
}
Exécution de scripts
Vous pouvez définir des scripts dans votre package.json
, par exemple:
{
"name": "your-package",
"version": "1.0.0",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"dependencies": {},
"devDependencies": {},
"scripts": {
"echo": "echo hello!"
}
}
Pour exécuter le script echo
, exécutez npm run echo
partir de la ligne de commande. Les scripts arbitraires, tels que echo
ci-dessus, doivent être exécutés avec npm run <script name>
. npm dispose également d'un certain nombre de scripts officiels qu'il exécute à certaines étapes de la vie du paquet (comme la preinstall
). Voir ici pour la présentation complète de la façon dont npm gère les champs de script.
Les scripts npm sont utilisés le plus souvent pour démarrer un serveur, créer un projet et exécuter des tests. Voici un exemple plus réaliste:
"scripts": {
"test": "mocha tests",
"start": "pm2 start index.js"
}
Dans les entrées de scripts
, les programmes en ligne de commande tels que mocha
fonctionneront lorsqu'ils seront installés globalement ou localement. Si l'entrée de ligne de commande n'existe pas dans le système PATH, npm vérifie également vos packages installés localement.
Si vos scripts deviennent très longs, ils peuvent être divisés en plusieurs parties, comme ceci:
"scripts": {
"very-complex-command": "npm run chain-1 && npm run chain-2",
"chain-1": "webpack",
"chain-2": "node app.js"
}
Enlever les paquets superflus
Pour supprimer les paquets superflus (packages installés mais pas dans la liste des dépendances), exécutez la commande suivante:
npm prune
Pour supprimer tous les paquets de dev
, ajoutez --production
flag de production:
npm prune --production
Liste des paquets actuellement installés
Pour générer une liste (arborescence) des packages actuellement installés, utilisez
npm list
ls , la et ll sont des alias de commande list . Les commandes la et ll affichent des informations étendues telles que la description et le référentiel.
Les options
Le format de réponse peut être modifié en passant des options.
npm list --json
- json - Affiche des informations au format json
- long - Affiche des informations étendues
- analysable - Affiche la liste analysable au lieu de l'arborescence
- global - Affiche les packages globalement installés
- depth - Profondeur maximale d'affichage de l'arbre de dépendance
- dev / development - Affiche les devDependencies
- prod / production - Affiche les dépendances
Si vous le souhaitez, vous pouvez également accéder à la page d'accueil du package.
npm home <package name>
Mise à jour des npm et des packages
Comme npm lui-même est un module Node.js, il peut être mis à jour lui-même.
Si le système d'exploitation est Windows, vous devez exécuter l'invite de commande en tant qu'administrateur
npm install -g npm@latest
Si vous voulez vérifier les versions mises à jour, vous pouvez faire:
npm outdated
Afin de mettre à jour un paquet spécifique:
npm update <package name>
Cela mettra à jour le package à la dernière version en fonction des restrictions de package.json
Si vous souhaitez également verrouiller la version mise à jour dans package.json:
npm update <package name> --save
Verrouillage de modules sur des versions spécifiques
Par défaut, npm installe la dernière version disponible des modules en fonction de la version sémantique de chaque dépendance. Cela peut être problématique si un auteur de module n'adhère pas à semver et introduit des modifications de rupture dans une mise à jour de module, par exemple.
Pour verrouiller la version de chaque dépendance (et les versions de leurs dépendances, etc.) à la version spécifique installée localement dans le dossier node_modules
, utilisez
npm shrinkwrap
Cela créera alors un npm-shrinkwrap.json
côté de votre package.json
qui répertorie les versions spécifiques des dépendances.
Mise en place de packages globalement installés
Vous pouvez utiliser npm install -g
pour installer un package "globalement". Cela est généralement fait pour installer un exécutable que vous pouvez ajouter à votre chemin à exécuter. Par exemple:
npm install -g gulp-cli
Si vous mettez à jour votre chemin, vous pouvez appeler directement gulp
.
Sur de nombreux systèmes d'exploitation, npm install -g
tentera d'écrire dans un répertoire dans lequel votre utilisateur ne pourra peut-être pas écrire, tel que /usr/bin
. Vous ne devez pas utiliser sudo npm install
dans ce cas, car il existe un risque de sécurité lié à l'exécution de scripts arbitraires avec sudo
et l'utilisateur root peut créer des répertoires dans lesquels vous ne pouvez pas écrire, ce qui complique les futures installations.
Vous pouvez indiquer à npm
où installer les modules globaux via votre fichier de configuration, ~/.npmrc
. Cela s'appelle le prefix
que vous pouvez afficher avec le npm prefix
.
prefix=~/.npm-global-modules
Cela utilisera le préfixe chaque fois que vous exécuterez npm install -g
. Vous pouvez également utiliser npm install --prefix ~/.npm-global-modules
pour définir le préfixe lors de l'installation. Si le préfixe est identique à votre configuration, vous n'avez pas besoin d'utiliser -g
.
Pour utiliser le module installé globalement, il doit être sur votre chemin:
export PATH=$PATH:~/.npm-global-modules/bin
Maintenant, lorsque vous exécutez npm install -g gulp-cli
vous pourrez utiliser gulp
.
Remarque: Lorsque vous npm install
(sans -g
), le préfixe sera le répertoire contenant package.json
ou le répertoire en cours si aucun élément n’est trouvé dans la hiérarchie. Cela crée également un répertoire node_modules/.bin
les exécutables. Si vous souhaitez utiliser un exécutable spécifique à un projet, il n'est pas nécessaire d'utiliser npm install -g
. Vous pouvez utiliser celui de node_modules/.bin
.
Lier des projets pour un débogage et un développement plus rapides
La création de dépendances de projet peut parfois être une tâche fastidieuse. Au lieu de publier une version de package sur NPM et d'installer la dépendance pour tester les modifications, utilisez le npm link
. npm link
crée un lien symbolique afin que le dernier code puisse être testé dans un environnement local. Cela facilite le test des outils globaux et des dépendances de projet en autorisant le dernier code exécuté avant de publier une version.
Texte d'aide
NAME
npm-link - Symlink a package folder
SYNOPSIS
npm link (in package dir)
npm link [<@scope>/]<pkg>[@<version>]
alias: npm ln
Étapes pour lier les dépendances du projet
Lors de la création du lien de dépendance, notez que le nom du package est ce qui va être référencé dans le projet parent.
- CD dans un répertoire de dépendances (ex:
cd ../my-dep
) -
npm link
- CD dans le projet qui va utiliser la dépendance
-
npm link my-dep
ou si namespacednpm link @namespace/my-dep
Étapes pour lier un outil global
- CD dans le répertoire du projet (ex:
cd eslint-watch
) -
npm link
- Utiliser l'outil
-
esw --quiet
Problèmes pouvant survenir
La liaison de projets peut parfois provoquer des problèmes si la dépendance ou l'outil global est déjà installé. npm uninstall (-g) <pkg>
, puis en exécutant le npm link
résout normalement tous les problèmes pouvant survenir.