npm知识点
以下文档基于npm@6.14.1,其他版本可能表现不同
参考
nrm 包源管理工具
- 安装:npm install -g nrm
- 显示可用源:nrm ls
- 测速:nrm test
- 切换源:nrm use taobao
package.json
依赖包版本号~和^和*的区别
- ~ 会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
- ^ 会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
- \* 这意味着安装最新版本的依赖包
npm常用命令
- npm i --save 同 npm i -S
- npm i --save-dev 同 npm i -D
npm i -E
- 精确安装指定模块版本
生成的package.json不包含^符号
"vuex": "3.1.2"
- npm i --save-exact 同 npm i -E
- npm i npm -g:升级npm
- npm i [packageName]@:安装某个包的最新版本,如:npm i jquery@\
知识点
- 使用 npm install xxx 命令安装模块时,不再需要 –save 选项,会自动将模块依赖信息保存到 package.json 文件;
- cnpm不会生成和更新package-lock.json,故不建议使用cnpm,使用nrm切换源解决速度问题
npm ci
- 它是从 package-lock.json 文件安装依赖, 具有快以及可靠优点
- 如果 package-lock.json 里面依赖和 package.json 不一致, npm ci 会报错并且退出
- npm ci 只能一次性安装整个工程的依赖, 不能使用这个命令单独添加依赖
- 如果 node_modules 文件夹存在, 它会在安装依赖之前删除这个文件夹
- 它不会改变 package.json 或者任何 package-lock
npm i
- package.json和package-lock.json不一致时(如手动修改过,包括删除),以package.json为准,npm i执行完成后package-lock.json会更新
- npm i jquery@1.12.2指定安装某个版本,package-lock.json会更新
若希望不同电脑上安装的包一致,建议如下操作
- npm版本升级到6.14.1
- 不要使用cnpm,装nrm,切换到taobao源
- 运行npm ci
- 若package.json中新增了依赖,建议使用npm i @X 安装指定版本,不要使用 npm i
- 若运行npm i,有版本不同的风险,若package-lock.json有变化,则代表刚才安装的版本与之前不同,此时需要测试整个项目是否受到影响
npx
其他
- 命令行删除 node_modules 速度更快,Windows 平台使用: rmdir /s/q node_modules ,*nix平台使用:sudo rm -rf node_modules
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。