Maison > Article > interface Web > Partage de gestion de plusieurs packages de dépendances NPM
Cet article vous présente principalement plusieurs types de gestion de packages de dépendances npm que vous devez connaître. npm est le gestionnaire de packages de node.js et est un outil de ligne de commande. L'article le présente en détail à travers un exemple de code. it Vous pouvez l'utiliser comme référence et suivre l'éditeur pour apprendre ensemble.
npm prend actuellement en charge les types de gestion de packages de dépendances suivants :
dépendances
devDependencies
peerDependencies
optionalDependencies
bundledDependencies / bundleDependencies
If vous Quel type de gestion des dépendances vous souhaitez utiliser, vous pouvez ensuite le mettre dans l'objet de dépendance correspondant dans package.json, tel que :
"devDependencies": { "fw2": "^0.3.2", "grunt": "^1.0.1", "webpack": "^3.6.0" }, "dependencies": { "gulp": "^3.9.1", "hello-else": "^1.0.0" }, "peerDependencies": { }, "optionalDependencies": { }, "bundledDependencies": []
Regardons-le un par un :
dépendances
Les dépendances d'application, ou dépendances métier, sont nos objets de gestion de packages de dépendances les plus couramment utilisés ! Il est utilisé pour spécifier les packages externes dont dépend l'application. Ces dépendances sont requises pour une exécution normale après la publication de l'application, mais n'incluent pas les packages utilisés lors des tests ou du packaging local. Vous pouvez utiliser la commande suivante pour installer :
npm install packageName --save
dependencies est un simple objet JSON, comprenant le nom du package et la version du package, où la version du package peut être un numéro de version ou une adresse URL. Par exemple :
{ "dependencies" :{ "foo" : "1.0.0 - 2.9999.9999", // 指定版本范围 "bar" : ">=1.0.2 <2.1.2", "baz" : ">1.0.2 <=2.3.4", "boo" : "2.0.1", // 指定版本 "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0", "asd" : "http://asdf.com/asdf.tar.gz", // 指定包地址 "til" : "~1.2", // 最近可用版本 "elf" : "~1.2.3", "elf" : "^1.2.3", // 兼容版本 "two" : "2.x", // 2.1、2.2、...、2.9皆可用 "thr" : "*", // 任意版本 "thr2": "", // 任意版本 "lat" : "latest", // 当前最新 "dyl" : "file:../dyl", // 本地地址 "xyz" : "git+ssh://git@github.com:npm/npm.git#v1.0.27", // git 地址 "fir" : "git+ssh://git@github.com:npm/npm#semver:^5.0", "wdy" : "git+https://isaacs@github.com/npm/npm.git", "xxy" : "git://github.com/npm/npm.git#v1.0.27", } }
devDependencies
Dépendances de l'environnement de développement, juste derrière la fréquence d'utilisation des dépendances ! Sa définition d'objet est la même que celle des dépendances, sauf que les packages qu'il contient ne sont utilisés que dans l'environnement de développement, pas dans l'environnement de production. Ces packages sont généralement des tests unitaires ou des outils de packaging, tels que gulp, grunt, webpack, moca, coffee. , etc., qui peuvent être utilisés La commande suivante est utilisée pour installer :
npm install packageName --save-dev
Par exemple :
{ "name": "ethopia-waza", "description": "a delightfully fruity coffee varietal", "version": "1.2.3", "devDependencies": { "coffee-script": "~1.6.3" }, "scripts": { "prepare": "coffee -o lib/ -c src/waza.coffee" }, "main": "lib/waza.js" }
Le script de préparation sera exécuté avant la publication, afin que les utilisateurs ne le fassent pas il faut s'y fier lors de la compilation du projet. En mode développement, l'exécution de npm install exécutera également le script de préparation, qui peut être facilement testé pendant le développement.
À ce stade, comprenez-vous la différence entre --save et --save-dev ?
peerDependencies
Les dépendances égales, ou dépendances homologues, sont utilisées pour spécifier les versions d'hôte compatibles avec le package actuel (c'est-à-dire le package que vous avez écrit). Comment le comprendre ? Imaginez, nous écrivons un plug-in gulp, mais gulp a plusieurs versions principales. Nous voulons uniquement être compatible avec la dernière version. Pour le moment, nous pouvons utiliser peerDependencies pour spécifier :
{ "name": "gulp-my-plugin", "version": "0.0.1", "peerDependencies": { "gulp": "3.x" } }
Quand. Lorsque d'autres personnes utilisent notre plug-in, peerDependencies indiquera clairement à l'utilisateur quelle version hôte du plug-in vous devez installer.
Normalement, nous utiliserons plusieurs plug-ins d'un même hôte (tels que gulp) dans un projet. S'il y a une incompatibilité d'hôte entre eux, lors de l'exécution de l'installation de npm, la cli affichera un message d'erreur pour le signaler. Nous, par exemple :
npm ERR! peerinvalid The package gulp does not satisfy its siblings' peerDependencies requirements! npm ERR! peerinvalid Peer gulp-cli-config@0.1.3 wants gulp@~3.1.9 npm ERR! peerinvalid Peer gulp-cli-users@0.1.4 wants gulp@~2.3.0
exécutons la commande npm install gulp-my-plugin --save-dev pour installer notre plug-in. Jetons un coup d'œil au graphe de dépendances :
├── gulp-my-plugin@0.0.1 └── gulp@3.9.1OK, bien !Notez que npm 1 et npm 2 installeront automatiquement les mêmes dépendances. npm 3 ne sera plus automatiquement installé et un avertissement sera généré ! L'ajout manuel de dépendances dans le fichier package.json peut être résolu.
try { var foo = require('foo') var fooVersion = require('foo/package.json').version } catch (er) { foo = null } if ( notGoodFooVersion(fooVersion) ) { foo = null } // .. then later in your program .. if (foo) { foo.doFooThings() }bundledDependencies / bundleDependencies
{ "name": "fe-weekly", "description": "ELSE 周刊", "version": "1.0.0", "main": "index.js", "devDependencies": { "fw2": "^0.3.2", "grunt": "^1.0.1", "webpack": "^3.6.0" }, "dependencies": { "gulp": "^3.9.1", "hello-else": "^1.0.0" }, "bundledDependencies": [ "fw2", "hello-else" ] }Exécutez la commande d'empaquetage npm pack, et le package fe-weekly-1.0.0.tgz généré inclura fw2 et hello-else. Cependant, il convient de noter que ces deux packages doivent d'abord être déclarés dans devDependencies ou dépendances, sinon le packaging signalera une erreur. Recommandations associées :
Spring Boot introduit le package de dépendances Druid
Explication détaillée des méthodes de configuration npm et webpack dans le nœud. js
Partage comment utiliser la dernière version de nodejs pour installer npm
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!