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