美文网首页
npm包管理总结

npm包管理总结

作者: crazyyoung1020 | 来源:发表于2019-03-24 10:32 被阅读0次

问题描述

这周在做一个项目改造,用weex重构一个比较久的项目。我没有新开一个仓库,而是直接在老项目上拉了一个分支,在分支上做开发。
然后到了代码封板日,我切回分支准备提交代码,打包报错了,突然发现node_modules包忘了备份,这可苦了我,重新npm install各种包,花了我一下午的时间。。。

问题解决

1.我先npm install所有依赖,然后最后报错了,错报的不明不白,重新安装了很多次,还是这样。
然后我就用cnpm install再试了一次,最后也报错了

2.在尝试直接npm install安装失败了很多次后,我决定,一个个依赖安装,反正也不多,就30来个,然后发现还是一直报错,我根据报错百度一波,发现原来有几个依赖版本更新后,前后兼容有问题。

3.最后我把所有依赖改成了固定版本号,再安装,虽然还是报错,根据报错提示xxx module not found,一个个安装,最终解决了问题。

npm依赖包版本控制

  1. 直接写死版本号1.2.3,会安装指定版本1.2.3的依赖包。

这样有个弊端,就是如果依赖包在后续有小版本修复bug,那么我们就得手动去升级重新安装。

  1. ^ 会安装最近的小版本依赖包,比如^1.2.3会安装最新的1.2.x,但是不会安装1.3.0及以上

这个是npm install安装依赖包默认的标记方式,但是代码更新比较大,可能导致代码报错,

  1. ~ 会安装最近的大版本依赖包,比如^1.2.3会安装最新的1.x.x,但是不会安装2.0.0及以上

代码更新比较小,最推荐的写法

  1. * 会安装最新的依赖包

不推荐,这样会导致项目各种报错

package-lock.json

npm 5.0版本后推出了package-lock.json文件,他是用来记录当时npm install 依赖时的确切版本号的。
我们npm install安装依赖后,package.json只会记录大版本,比如 ^1.2.3,但是这样版本更新可能会比较大。package-lock.json就会记录@1.2.3这个版本,后续npm install ,npm会读package-lock.json,指定安装1.2.3版本。

但是这里要注意一点,有package-lock.json的情况下,直接修改package.json里面的版本号会不生效

npm install安装的时候npm不会管package.json,只会去读package-lock.json的版本号。如果需要更新依赖,只能通过npm install xxx@x.x.x的这样的方式,重新在package-lock.json记录一下。

相关文章

  • npm操作

    npm所有者管理: npm登录: npm查看用户信息: 发布(包): npm撤销发布的包: npm退出: 初始化n...

  • node版本管理工具nvm和npm

    nvm的安装详解 nvm管理node版本,npm管理node包 npm的使用 npm安装和环境变量设置 安装npm...

  • npm更新

    使用npm管理node的包,可以使用npm update 对单个包升级,对于npm的版本大于 2.6....

  • gulp详解

    npm npm node package manager 项目管理的依赖包 npm 使用1.初始化操作:npm i...

  • npm和npx的区别

    NPM-管理Node包的工具 NPX- 执行Node包的工具 npm5.2+支持NPX NPM本身实际上不能运行任...

  • 02-nmp包管理工具

    - Node.js包管理工具 npm :基于包的规范实现的一个包管理工具 - npm install 包名 当执行...

  • ReactNative添加删除包

    ReactNative是使用npm来管理包的,所以添加删除包跟npm是一样的. 添加包 如果没有--save就只是...

  • npm

    npm站点:供使用者搜索js包,或者管理自己的包cli: 使用命令和npm包进行交互registry: 注册中心,...

  • node基础

    http & url 包管理 npm init 安装包 1、使用 npm install node_module ...

  • npm介绍

    npm简介 npm是node的包管理工具,定义明确就是用来管理node的包,包括安装,卸载,更新,发布等 npm命...

网友评论

      本文标题:npm包管理总结

      本文链接:https://www.haomeiwen.com/subject/kniyvqtx.html