


Parlons de la façon d'utiliser package.json pour la gestion des versions des packages dépendants
Cet article explique comment utiliser package.json pour effectuer la gestion des versions des packages dépendants dans des projets frontaux réels.
Quel impact les différentes règles auront-elles sur la gestion des dépendances ?
Définition du numéro de version npm
Format de la version : X.Y.Z[-string]
X.Y.Z[-string]
其含义为:
- X:主版本号
- Y:次版本号
- Z:修正版本号
- string: 先行版本号或版本编译信息
举个例子:
6.3.2-alpha
的含义为:
主版本号6,有6次不可向下兼容的更新迭代。
次版本号3,有3次小的功能迭代。
6.*.*
修正版本号2,有2次bug修改或其他非重大功能的修改。
6.*.*
先行版本号
alpha
,表示处理试验阶段。
扩展阅读:语义化版本 2.0.0
package.json怎么识别依赖版本
将按下述代码进行阐释:
"vue": "~2.5.22", "vue-class-component": "^6.0.0", "vue-router": "3.0.1", "express": "latest", "mongoose": "*",
-
符号
^
:锁定主版本,可更新次版本号、修正版本号和先行版本号例如
"vue-class-component": "^6.0.0"
,安装依赖时,可以安装符合6.*.*
的任意版本,只要主版本号是6即可。 -
符号
~
:锁定主版本号和次版本号,可更新修正版本号和先行版本号例如
"vue": "~2.5.22"
,安装依赖时,可以安装符合2.5.*
的任意版本。 -
空符号
:锁定所有版本号例如
"vue-router": "3.0.1"
,只能安装版本为3.0.1
的依赖包。 -
符号*
:定义某个版本号范围例如
vue-router": "3.0.*"
,可以安装3.0
固定的任意版本,比如3.0.1
、3.0.2
。 latest
:安装最新的稳定版本
例如
"express": "latest"
,可以安装4.18.1
(2022.06.13最新版本)。*
:安装最新发布的版本,不一定是稳定版本
例如
"mongoose": "*"
,可以安装6.0.0-rc2
、3.9.7
等。-
Git URL
:使用Git上发布的包引用格式:
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]</semver></commit-ish></path></port></hostname></password></user></protocol>
"test": "git+ssh://git@github.com:npm/cli.git#v1.0.27"
不要太相信npm包的版本号!
如题,这个是血的教训换来的经验。
笔者在使用system.js
时,使用的版本限制是:system.js: "^6.3.2"
。
在安装依赖的时候,意外安装了> 6.3.2
的版本,导致项目运行出错。
原因就是system.js
作者,没有按照semver
规范,进行版本号命名,导致笔者的项目,引入了不可向下兼容的更新,进而使项目运行出错。
dependencies、devDependencies与peerDependencies
dependencies
生产环境中使用到的依赖,统一安装在dependencies
下。
举个例子:
"dependencies": { "chalk": "^2.4.2", "commander": "^3.0.0", "fs-extra": "^8.1.0", "inquirer": "^6.5.0", "mem-fs": "^1.1.3", "mem-fs-editor": "^6.0.0", "shelljs": "^0.8.3" }
上述代码,是笔者做的cli
工具包的package.json
中的片段。shelljs
用于操作文件,如果改在devDependencies
声明,则用户安装当前工具包后,运行会报错。
因为devDependencies
字段声明的依赖,在npm install 工具包
时,是不会安装的。必须在dependencies
La signification est :
- X : numéro de version majeur
- Y : numéro de version mineure
- Z : numéro de version révisée
- chaîne : numéro de version avancé ou informations de compilation de version
- 🎜Version principale numéro 6, il y a 6 itérations de mise à jour qui ne sont pas rétrocompatibles . 🎜
- 🎜Version numéro 3, il y a 3 petites itérations de fonctions. L'instruction de dépendance de
6.*.*
- 🎜Version corrigée numéro 2, avec 2 corrections de bugs ou d'autres modifications de fonctionnalités non majeures. L'instruction de dépendance de
6.*.*
- 🎜Le numéro de version avancée
alpha
indique la phase expérimentale de traitement. 🎜
Comment identifier les versions de dépendances dans package.json🎜🎜 sera expliqué selon le code suivant : 🎜"devDependencies": {
"@commitlint/cli": "^8.1.0",
"@commitlint/config-conventional": "^8.1.0",
"commitizen": "^4.0.3",
"commitlint-config-cz": "^0.12.1",
"cz-customizable": "^6.2.0",
"standard-version": "^7.0.0"
}
Copier après la connexionCopier après la connexion
"devDependencies": { "@commitlint/cli": "^8.1.0", "@commitlint/config-conventional": "^8.1.0", "commitizen": "^4.0.3", "commitlint-config-cz": "^0.12.1", "cz-customizable": "^6.2.0", "standard-version": "^7.0.0" }
^
: verrouille la version principale et peut mettre à jour le numéro de version mineure, le numéro de version révisé et le numéro de version avancée🎜🎜Par exemple "vue-class-component": "^6.0.0"
, lors de l'installation des dépendances, vous pouvez installer n'importe quelle version conforme à 6.*.*
, à condition que la version principale le nombre est 6. 🎜~
: verrouillez le numéro de version majeure et le numéro de version mineure, et mettez à jour le numéro de version révisé et le numéro de version avancée🎜🎜Par exemple "vue": "~2.5.22"
, lors de l'installation des dépendances, vous pouvez installer n'importe quelle version conforme à 2.5.*
. 🎜Symbole vide
: Verrouille tous les numéros de version🎜🎜Par exemple "vue-router": "3.0.1" code >, seuls les packages dépendants avec la version 3.0.1
peuvent être installés. 🎜
Symbole*
: Définissez une certaine plage de numéros de version🎜🎜Par exemple, vue-router": "3.0.*" code>, vous pouvez installer n'importe quelle version corrigée par 3.0
, telle que 3.0.1
, 3.0.2
🎜
dernière
: Installez la dernière version stable🎜🎜
- 🎜Par exemple,
"express": "latest "
, Vous pouvez installer4.18.1
(la dernière version du 2022.06.13) 🎜 - 🎜
*
: Installer la dernière version publiée, pas nécessairement la dernière version stable🎜
- 🎜Par exemple,
"mongoose": "*"
, vous pouvez installez6.0.0-rc2
,3.9.7
etc. 🎜 - 🎜
Git URL
: utilisez le package publié sur Git 🎜🎜Format de citation :<protocole> : //[<user>[:<password>]@]<hostname>[:<port>][:][/]<path> | #semver :< ;semver>]</path></port></hostname></password></user></protocole>
🎜
{ "name": "tea-latte", "version": "1.3.5", "peerDependencies": { "tea": "2.x" } }
Ne vous fiez pas trop au numéro de version du package npm ! 🎜🎜Comme le titre l'indique, c'est l'expérience acquise grâce aux leçons de sang. 🎜🎜Lorsque l'auteur utilise system.js
, la limite de version utilisée est : system.js : "^6.3.2"
. 🎜🎜Lors de l'installation des dépendances, la version de > 6.3.2
a été accidentellement installée, entraînant un mauvais fonctionnement du projet. 🎜🎜La raison est que l'auteur de system.js
n'a pas nommé le numéro de version conformément à la spécification semver
, ce qui a entraîné l'introduction de pas à rebours mise à jour compatible, provoquant un mauvais fonctionnement du projet. 🎜
dépendances, devDependencies et peerDependencies🎜dépendances
🎜Les dépendances utilisées dans l'environnement de production sont uniformément installées sous dependencies
. 🎜🎜Par exemple : 🎜rrreee🎜Le code ci-dessus est un fragment du package.json
de la boîte à outils cli
créée par l'auteur. 🎜shelljs
est utilisé pour faire fonctionner les fichiers. Si l'instruction est modifiée en devDependencies
, une erreur sera signalée après que l'utilisateur aura installé le package d'outils actuel. 🎜Parce que les dépendances déclarées dans le champ devDependencies
ne seront pas installées lorsque le npm install tool package
. Doit être déclaré dans le champ dépendances
avant d'être installé. 🎜devDependencies
dépendances
🎜Les dépendances utilisées dans l'environnement de production sont uniformément installées sousdependencies
. 🎜🎜Par exemple : 🎜rrreee🎜Le code ci-dessus est un fragment du package.json
de la boîte à outils cli
créée par l'auteur. 🎜shelljs
est utilisé pour faire fonctionner les fichiers. Si l'instruction est modifiée en devDependencies
, une erreur sera signalée après que l'utilisateur aura installé le package d'outils actuel. 🎜Parce que les dépendances déclarées dans le champ devDependencies
ne seront pas installées lorsque le npm install tool package
. Doit être déclaré dans le champ dépendances
avant d'être installé. 🎜devDependencies
生产环境不需要使用的依赖,都需要安装在devDependencies
下。
因为生产环境下,是不会安装devDependencies
字段下的依赖的。
举个例子:
"devDependencies": { "@commitlint/cli": "^8.1.0", "@commitlint/config-conventional": "^8.1.0", "commitizen": "^4.0.3", "commitlint-config-cz": "^0.12.1", "cz-customizable": "^6.2.0", "standard-version": "^7.0.0" }
上述代码,是笔者做的cli
工具包的package.json
中的片段。commitizen
是笔者用于规范Git
提交规范的依赖包,只在开发环境中使用,所以在devDependencies
中声明。
peerDependencies
当开发一些插件和工具包时,对使用方的运行环境的依赖包版本有要求,可以使用peerDependencies
字段进行声明。
举个例子:
{ "name": "tea-latte", "version": "1.3.5", "peerDependencies": { "tea": "2.x" } }
当前工具tea-latte
,依赖tea
包。而且,要求tea
包是主版本2。
当不满足要求时,控制台会进行报错处理。
注意
npm v7版本, peerDependencies会默认安装。
npm v3 到 npm v6版本,peerDependencies
不会自动安装。
更多node相关知识,请访问:nodejs 教程!
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Cet article vous présentera les trois gestionnaires de packages JavaScript (npm, fil, pnpm), comparera ces trois gestionnaires de packages et parlera des différences et des relations entre npm, fil et pnpm. J'espère que cela sera utile à tout le monde, s'il vous plaît. aidez-moi, si vous avez des questions, n'hésitez pas à les signaler !

Solution à l'erreur d'installation de npm React : 1. Ouvrez le fichier "package.json" dans le projet et recherchez l'objet de dépendances ; 2. Déplacez "react.json" vers "devDependencies" ; 3. Exécutez "npm audit dans le terminal -- production" pour corriger l'avertissement.

Dans le développement quotidien, nous savons tous que package.json est une description d'un package de projet ou de module, qui contient de nombreuses méta-informations. Alors, comment devrions-nous lire package.json pour obtenir les informations qu'il contient ? Ce qui entre en jeu aujourd'hui, c'est notre protagoniste - read-pkg. Le code source clé ne compte qu'une trentaine de lignes. Examinons ensuite de plus près l'implémentation, qui peut être considérée comme jetant les bases du développement ultérieur de notre propre boîte à outils. !

Cet article vous donnera une explication détaillée des fichiers package.json et package-lock.json. J'espère qu'il vous sera utile !

La raison pour laquelle le nœud ne peut pas utiliser la commande npm est que les variables d'environnement ne sont pas configurées correctement. La solution est la suivante : 1. Ouvrez "Propriétés système" ; 2. Recherchez "Variables d'environnement" -> "Variables système", puis modifiez l'environnement. variables ; 3. Recherchez l'emplacement du dossier nodejs ; 4. Cliquez sur "OK".

npm node gyp a échoué car les versions de « node-gyp.js » et « Node.js » ne correspondaient pas. La solution : 1. Videz le cache du nœud via « npm cache clean -f » 2. Via « npm install - ». g n" Installez le module n ; 3. Installez la version "node v12.21.0" via la commande "n v12.21.0".

npm est l'outil de gestion des packages pour la bibliothèque node.js. Étant donné que l'adresse du miroir est à l'étranger, l'installation de la bibliothèque sera lente. Vous pouvez remplacer l'adresse du miroir par une adresse nationale (miroir Taobao) pour améliorer la vitesse d'installation. bibliothèque.

npm est l'outil de gestion de packages du monde JavaScript et est l'outil de gestion de packages par défaut pour la plateforme Node.js. Grâce à npm, vous pouvez installer, partager, distribuer du code et gérer les dépendances du projet. Cet article vous fera découvrir les principes de npm, j'espère qu'il vous sera utile !
