.强制固定package.json 里的依赖包版本号
符号 当运行 npm update 时,情况说明
^1.5.1 【限制主版本号】允许安装版本号大于 1.5.1 但小于 2.0.0 版本的模块
~1.5.1 【限制次要版本】 允许安装版本号大于 1.5.1 但小于 1.6.0 版本的模块
1.5.1 【精确控制】允许安装版本号大于 1.5.1
强制固定版本号 即去掉版本号前的符号
2.使用npm-shrinkwrap锁定依赖
在开发阶段依赖稳定后,运行如下命令:
npm shrinkwrap
npm shrinkwrap --dev # 将dev-dependencies计算在内
这会生成一个 npm-shrinkwrap.json 文件,该文件包含了你正在使用的模块的指定版本。
当运行 npm install时,该文件所指定的模块版本会覆盖 package.json 文件中所指定的版本。
注意问题:
shrinkwrap计算时是根据当前依赖安装的目录结构生成的,如果你不能保证package.json文件定义的依赖与node_modules下已安装的依赖是匹配、无冗余的,建议在执行shrinkwrap命令前清理依赖并重新安装(rm -rf node_modules && npm install)或精简依赖(npm prune)或手动删除node_modules文件夹重新安装依赖。
默认情况下,shrinkwrap只计算dependencies依赖,而不计算dev-dependencies,如果在生产环境也需要开发依赖或你的依赖分类不清晰,使用--dev参数生成shrinkwrap文件确保不会出问题。
需要升级某个依赖时应先执行 npm update xxx 之后依次执行npm shrinkwrap / npm shrinkwrap --dev 、npm install
并提交npm-shrinkwrap.json和package.json至版本库中
特别注意:
使用cnpm会忽略npm-shrinkwrap.json文件,这里推荐严格使用npm命令进行操作
我们应先执行npm换源操作
关于npm 换成淘宝镜像源
1.得到原本的镜像地址
npm get registry
设成淘宝的
npm config set registry http://registry.npm.taobao.org/
yarn config set registry http://registry.npm.taobao.org/
2.换成原来的
npm config set registry https://registry.npmjs.org/