文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

package.json管理依赖包版本实例分析

2023-07-02 16:08

关注

这篇文章主要介绍了package.json管理依赖包版本实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇package.json管理依赖包版本实例分析文章都会有所收获,下面我们一起来看看吧。

npm版本号定义

版本格式: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

package.json怎么识别依赖版本

将按下述代码进行阐释:

"vue": "~2.5.22","vue-class-component": "^6.0.0","vue-router": "3.0.1","express": "latest","mongoose": "*",

package.json管理依赖包版本实例分析

例如"express": "latest",可以安装4.18.1 (2022.06.13最新版本)。

*:安装最新发布的版本,不一定是稳定版本

package.json管理依赖包版本实例分析

例如"mongoose": "*",可以安装6.0.0-rc23.9.7等。

Git URL:使用Git上发布的包

引用格式: <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]

"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字段中声明,才会被安装。

devDependencies

生产环境不需要使用的依赖,都需要安装在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

当开发一些插件和工具包时,对使用方的运行环境的依赖包版本有要求,可以使用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不会自动安装。

关于“package.json管理依赖包版本实例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“package.json管理依赖包版本实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯