目录npm版本号定义package.JSON怎么识别依赖版本不要太相信npm包的版本号dependencies、devDependencies与peerDependenciesdep
版本格式:X.Y.Z[-string]其含义为:
举个例子:
6.3.2-alpha的含义为:
主版本号6,有6次不可向下兼容的更新迭代。
次版本号3,有3次小的功能迭代。6.*.* <=6.3.2的依赖声明,都可以安装此新包。
修正版本号2,有2次bug修改或其他非重大功能的修改。6.*.* <=6.3.2的依赖声明,都可以安装此新包。
先行版本号alpha,表示处理试验阶段。
扩展阅读:语义化版本 2.0.0
将按下述代码进行阐释:
"Vue": "~2.5.22",
"vue-class-component": "^6.0.0",
"vue-router": "3.0.1",
"express": "latest",
"monGoose": "*",
例如"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>]
扩展阅读:npm docs - dependencies
如题,这个是血的教训换来的经验。
笔者在使用system.js时,使用的版本限制是:system.js: "^6.3.2"。
在安装依赖的时候,意外安装了> 6.3.2的版本,导致项目运行出错。
原因就是system.js作者,没有按照semver规范,进行版本号命名,导致笔者的项目,引入了不可向下兼容的更新,进而使项目运行出错。
生产环境中使用到的依赖,统一安装在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字段中声明,才会被安装。
生产环境不需要使用的依赖,都需要安装在peerDependencies下。
因为生产环境下,是不会安装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字段进行声明。
举个例子:
{
"name": "tea-latte",
"version": "1.3.5",
"peerDependencies": {
"tea": "2.x"
}
}
当前工具tea-latte,依赖tea包。而且,要求tea包是主版本2。
当不满足要求时,控制台会进行报错处理。
注意
npm v7版本, peerDependencies会默认安装。
npm v3 到 npm v6版本, peerDependencies不会自动安装。
npm Docs
语义化版本 2.0.0
以上就是package.json管理依赖包版本详解的详细内容,更多关于package.json管理依赖包版本的资料请关注编程网其它相关文章!
--结束END--
本文标题: package.json管理依赖包版本详解
本文链接: https://www.lsjlt.com/news/153782.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0