npm 知识点
以下文档基于 npm@6.14.1,其余版本可能体现不同
参考
- 你想晓得对于 package-lock.json 的所有
- nrm
- npx 应用教程
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
npx 应用教程
其余
- 命令行删除 node_modules 速度更快,Windows 平台应用:rmdir /s/q node_modules,*nix 平台应用:sudo rm -rf node_modules