Maison interface Web js tutoriel Partage de gestion de plusieurs packages de dépendances NPM

Partage de gestion de plusieurs packages de dépendances NPM

Jan 27, 2018 pm 01:52 PM
依赖 分享 管理

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": []
Copier après la connexion

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
Copier après la connexion

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",
 }
}
Copier après la connexion

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
Copier après la connexion

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"
}
Copier après la connexion

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"
 }
}
Copier après la connexion

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
Copier après la connexion

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.1
Copier après la connexion
OK, 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.


optionalDependencies


Dépendances facultatives S'il existe des packages dépendants que le projet peut toujours exécuter même si l'installation échoue ou si vous souhaitez que NPM continue de s'exécuter, vous pouvez utiliser. Dépendances facultatives. De plus, les dépendances facultatives écraseront le package de dépendances portant le même nom dans les dépendances, ne l'écrivez donc pas aux deux endroits.

Par exemple, un package de dépendances facultatif est comme un plug-in de programme. S'il existe, la logique existante sera exécutée. S'il n'existe pas, une autre logique sera exécutée.

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()
}
Copier après la connexion
bundledDependencies / bundleDependencies


Emballage des dépendances, bundledDependencies est un objet tableau contenant les noms de packages dépendants lors de la publication, les packages de cet objet seront empaquetés dans la version finale In. le sac. Par exemple :

{
 "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"
 ]
}
Copier après la connexion
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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment partager Quark Netdisk avec Baidu Netdisk ? Comment partager Quark Netdisk avec Baidu Netdisk ? Mar 14, 2024 pm 04:40 PM

Quark Netdisk et Baidu Netdisk sont tous deux des outils de stockage très pratiques. De nombreux utilisateurs se demandent si ces deux logiciels sont interopérables ? Comment partager Quark Netdisk avec Baidu Netdisk ? Laissez ce site présenter en détail aux utilisateurs comment enregistrer les fichiers Quark Network Disk sur Baidu Network Disk. Comment enregistrer des fichiers de Quark Network Disk vers Baidu Network Disk Méthode 1. Si vous souhaitez savoir comment transférer des fichiers de Quark Network Disk vers Baidu Network Disk, téléchargez d'abord les fichiers qui doivent être enregistrés sur Quark Network Disk, puis ouvrez le client Baidu Network Disk, sélectionnez le dossier dans lequel le fichier compressé doit être enregistré et double-cliquez pour ouvrir le dossier. 2. Après avoir ouvert le dossier, cliquez sur « Télécharger » dans le coin supérieur gauche de la fenêtre. 3. Recherchez le fichier compressé qui doit être téléchargé sur votre ordinateur et cliquez pour le sélectionner.

Comment partager NetEase Cloud Music avec WeChat Moments_Tutorial sur le partage de NetEase Cloud Music avec WeChat Moments Comment partager NetEase Cloud Music avec WeChat Moments_Tutorial sur le partage de NetEase Cloud Music avec WeChat Moments Mar 25, 2024 am 11:41 AM

1. Tout d'abord, nous entrons dans NetEase Cloud Music, puis cliquons sur l'interface de la page d'accueil du logiciel pour accéder à l'interface de lecture de chansons. 2. Ensuite, dans l'interface de lecture de la chanson, recherchez le bouton de fonction de partage en haut à droite, comme indiqué dans l'encadré rouge de la figure ci-dessous, cliquez pour sélectionner le canal de partage dans le canal de partage, cliquez sur l'option « Partager sur » sur en bas, puis sélectionnez le premier « WeChat Moments » qui vous permet de partager du contenu avec WeChat Moments.

Comment utiliser Redis pour implémenter la gestion distribuée des transactions Comment utiliser Redis pour implémenter la gestion distribuée des transactions Nov 07, 2023 pm 12:07 PM

Comment utiliser Redis pour mettre en œuvre la gestion distribuée des transactions Introduction : Avec le développement rapide d'Internet, l'utilisation de systèmes distribués devient de plus en plus répandue. Dans les systèmes distribués, la gestion des transactions constitue un défi important. Les méthodes traditionnelles de gestion des transactions sont difficiles à mettre en œuvre dans les systèmes distribués et sont inefficaces. Grâce aux caractéristiques de Redis, nous pouvons facilement mettre en œuvre une gestion distribuée des transactions et améliorer les performances et la fiabilité du système. 1. Introduction à Redis Redis est un système de stockage de données basé sur la mémoire avec des performances de lecture et d'écriture efficaces et des données riches

Comment partager des fichiers avec des amis sur Baidu Netdisk Comment partager des fichiers avec des amis sur Baidu Netdisk Mar 25, 2024 pm 06:52 PM

Récemment, le client Android Baidu Netdisk a inauguré une nouvelle version 8.0.0. Cette version apporte non seulement de nombreux changements, mais ajoute également de nombreuses fonctions pratiques. Parmi eux, le plus frappant est l’amélioration de la fonction de partage de dossiers. Désormais, les utilisateurs peuvent facilement inviter des amis à rejoindre et partager des fichiers importants au travail et dans la vie, obtenant ainsi une collaboration et un partage plus pratiques. Alors, comment partager les fichiers que vous devez partager avec vos amis ? Ci-dessous, l'éditeur de ce site vous fera une introduction détaillée, j'espère qu'il pourra vous aider ! 1) Ouvrez l'application Baidu Cloud, cliquez d'abord pour sélectionner le dossier approprié sur la page d'accueil, puis cliquez sur l'icône [...] dans le coin supérieur droit de l'interface (comme indiqué ci-dessous) 2) Cliquez ensuite sur [+] dans la colonne "Membres partagés" 】, et enfin cochez tous

L'installation CentOS gnuplot et le tournesol de l'installation CentOS manquent de dépendances L'installation CentOS gnuplot et le tournesol de l'installation CentOS manquent de dépendances Feb 13, 2024 pm 11:39 PM

LINUX est un système d'exploitation largement utilisé, hautement personnalisable et stable. CentOS est un système d'exploitation gratuit et open source construit sur le code source de Red Hat Enterprise Linux (RHEL). Il est largement utilisé dans les serveurs et les environnements de bureau dans l'installation de logiciels. Les packages sur CentOS sont l'une des tâches courantes d'utilisation quotidienne. Cet article explique comment installer gnuplot sur CentOS et résoudre le problème des dépendances manquantes du logiciel Tournesol. Gnuplot est un outil de dessin puissant qui peut générer différents types de graphiques, y compris la visualisation de données en deux dimensions et en trois dimensions. Pour installer gnuplot sur CentOS, vous pouvez suivre les étapes ci-dessous : 1.

Partage de compte membre Mango tv 2023 Partage de compte membre Mango tv 2023 Feb 07, 2024 pm 02:27 PM

Mango TV propose différents types de films, séries télévisées, émissions de variétés et autres ressources, et les utilisateurs peuvent choisir librement de les regarder. Les membres de Mango TV peuvent non seulement regarder toutes les séries VIP, mais également définir la qualité d'image la plus haute définition pour aider les utilisateurs à regarder les séries avec plaisir. Ci-dessous, l'éditeur vous proposera des comptes d'adhésion gratuits à Mango TV que les utilisateurs pourront utiliser, dépêchez-vous et jetez un œil. Regarde. Mango TV dernier compte membre partage gratuit 2023 : Remarque : Ce sont les derniers comptes membres collectés, vous pouvez vous connecter et les utiliser directement, ne changez pas le mot de passe à volonté. Numéro de compte : 13842025699 Mot de passe : qds373 Numéro de compte : 15804882888 Mot de passe : evr6982 Numéro de compte : 13330925667 Mot de passe : jgqae Numéro de compte : 1703

Que faire si la gestion du menu contextuel ne peut pas être ouverte sous Windows 10 Que faire si la gestion du menu contextuel ne peut pas être ouverte sous Windows 10 Jan 04, 2024 pm 07:07 PM

Lorsque nous utilisons le système win10, lorsque nous utilisons la souris pour cliquer avec le bouton droit sur le bureau ou sur le menu contextuel, nous constatons que le menu ne peut pas être ouvert et que nous ne pouvons pas utiliser l'ordinateur normalement. À ce stade, nous devons restaurer. le système pour résoudre le problème. La gestion du menu contextuel Win10 ne peut pas être ouverte : 1. Ouvrez d'abord notre panneau de configuration, puis cliquez. 2. Cliquez ensuite sous Sécurité et maintenance. 3. Cliquez à droite pour restaurer le système. 4. Si elle ne peut toujours pas être utilisée, vérifiez s'il y a un problème avec la souris elle-même. 5. Si vous êtes sûr qu'il n'y a pas de problème avec la souris, appuyez sur + et entrez. 6. Une fois l'exécution terminée, redémarrez l'ordinateur.

Résolvez le problème selon lequel le partage Discuz WeChat ne peut pas être affiché Résolvez le problème selon lequel le partage Discuz WeChat ne peut pas être affiché Mar 09, 2024 pm 03:39 PM

Titre : Pour résoudre le problème de l'impossibilité d'afficher les partages Discuz WeChat, des exemples de code spécifiques sont nécessaires. Avec le développement de l'Internet mobile, WeChat est devenu un élément indispensable de la vie quotidienne des gens. Dans le développement de sites Web, afin d'améliorer l'expérience utilisateur et d'étendre la visibilité du site Web, de nombreux sites Web intégreront des fonctions de partage WeChat, permettant aux utilisateurs de partager facilement le contenu du site Web avec des groupes Moments ou WeChat. Cependant, parfois, lorsque vous utilisez des systèmes de forum open source tels que Discuz, vous rencontrerez le problème de l'impossibilité d'afficher les partages WeChat, ce qui entraîne certaines difficultés pour l'expérience utilisateur.

See all articles