时间:2021-05-26
场景引入
开发时,经常需要依赖一些模块(包),我们进行了下载之后,便一直在该版本的模块环境下进行开发,但是线上的服务器(其他开发者)一般都是根据依赖来配置文件,重新下载各个模块,但是保不齐某个模块的版本已经更新了,这时线上的包会更新到最新的版本,但你的代码还是依据老版本来写的,这时可能会产生一些不知名的 Bug。
为了保持 JavaScript 生态系统的健康,可靠和安全,npm 软件包进行重大更新时,建议在package.json 文件中发布带有更新版本号的软件包的新版本,文件遵循语义版本规范。
遵循语义版本规范可以帮助依赖代码的其他开发人员了解给定版本中的更改范围,并在必要时调整自己的代码。
关于语义版本控制
为了帮助依赖你的代码的开发人员,建议在1.0.0 开始包版本并按如下方式递增。npm 包的版本号的格式x.y.z ,版本好的格式遵循 semver 2.0 规范。
代码状态 阶段 规则 示例版本 首发 新产品
New product 从1.0.0开始 1.0.0 向后兼容的错误修复 补丁发布
Patch release 第三位数增加 1.0.1 向后兼容的新功能 次要发布
Minor release 中间数字增加
并将最后一个数字重置为零 1.1.0 破坏向后兼容性的更改 主要发布
Major release 第一个数字增加
并将中间和最后一个数字重置为零 2.0.0
版本规范识别
脱字符^
npm 通过脱字符(^)来限定所安装模块的主版本号,而该脱字符对于不同的版本号有不同的更新机制。
波浪号~
限定模块的次要版本。
星号*
跟新或安装模块时会安装>=0.0.0的最新版本
更多
1.可以把项目依赖的包固定在某一个版本,强制大家安装相同的依赖树
npm install react --save -E上面命令会将react 的版本号进行固定,但是该方式只能控制项目中直接依赖的包的版本,无法控制项目模块中依赖的包的版本号,所以这种方式也无法让不同的使用者得到相同的依赖树。
2.使用npm shrinkwrap ,可以将项目中的模块版本进行精确锁定 运行命令npm shrinkwrap ,会产生一个npm-shrinkwrap.json 文件,这个文件保存了所有当前使用的依赖模块的版本。把该文件提交到 git 仓库中,这样其他人在 clone 你的项目的时候,执行 npm install 命令时,npm 检测到该文件中的信息会完整的还原出完全相同的依赖树。
npm install --save-dev react // 安装reactnpm prune // 清除未被使用的模块npm shrinkwrap注:这种方式,安装一个模块包的方式显得有些比较繁琐
3.使用 yarn 可以得到模块包精确控制的结果 yarn 是一个与 npm 兼容的 node 包管理器,使用它安装 npm 包,会自动在项目目录创建一个yarn.lock 文件,该文件包含了当前项目中所安装的依赖包的版本信息,其他人在使用 yarn 安装项目的依赖包时就可以通过该文件创建一个完全相同的依赖环境。
yarn init //使用yarn创建一个项目yarn add <package> //使用yarn 安装一个包此外,yarn 除了可以自动帮我们锁定依赖包的版本,yarn 还在本地缓存已经安装过的包,当再次安装时,直接从本地读取即可。安装速度得到大大提升。但 yarn 的使用需要整个团队都去使用,还是有一定的成本的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、npm版本需要大于3.0,如果低于此版本需要升级它:#查看版本$npm-v2.3.0#升级npmcnpminstallnpm-g二、在用Vue.js构建大型
网络协议三要素的含义如下: 1、语义 语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。 2、语法 语法
1、安装/升级node环境vue-cli对于node和npm的版本是有要求的。可以通过node-v(npm-v)查看当前版本,通过wherenode(where
安装vue-cli的前提是你已经安装了npm,安装npm你可以直接下载node的安装包进行安装。你可以在命令行工具里输入npm-v检测你是否安装了npm和版本情
网络协议的三要素是语法,语义,同步。 1、语法,即用户数据与控制信息的结构和格式。 2、语义,即需要发出控制信息,以及完成的动作与做出的响应。 3、时序,