日常使用npm时候的一些小技巧,值得学习
重复build
🚫:即使采用cli安装,你安装依赖的版本可能不同于别的同学
✅:因为在package.json中版本号一般是通过^符号,使用--save-exact,会安装package.json中指定版本
$ npm install --save-exact aDependency
# Shorter:
$ npm i -E aDependency
更好的方法是配置下$ npm config set save-exact true
安装包
🚫:使用npm 安装时会试图解析依赖,因为在依赖中声明的范围不是你自己编写的,所以可能会导致在本地安装不同版本。然后即使未曾操作,也会自动更新package-lock.json文件。
✅:使用npm ci,其优势:
- 快速
- 避免更新package-lock.json文件
全局包
🚫:污染全局包下的node_modules文件
✅:npx会自动查找当前依赖包中的可执行文件,如果找不到,就会去 PATH 里找。如果依然找不到,就会帮你安装
安全性
🚫:发现某些包具有安全漏洞(比如之前很出名的npm包被注入挖矿代码的事件)
✅:npm audit和npm audit fix,自从npm6之后采用npm install时候会自动执行npm audit命令,如果出现问题会自动停止。
另一种解决方式使用github和gitlab内置的服务
更新包
🚫:更新某个包后,会出问题
✅:有以下两种不同解决方法:
- 采用
updtrnpm包,会更新某个库,然后跑测试,如果测试成功后,会更新版本,否则就回滚到之前版本 - 采用
npm-check包会展示过期的包npx npm-check -ucloud.githubusercontent.com/assets/5150…
工具中当前node版本
🚫:当配置js和ts,node的path是依赖于版本的

✅:如果使用nvm管理node版本,nvm会管理一个链接到当前版本。配置如下后,当切换node版本后,会重新创建链接
# Put this in your .bashrc/.zshrc
$ export NVM_SYMLINK_CURRENT=true
跟随github上版本
🚫:无法实时更新github上包的新版本
✅:GitPunch会定制你想追踪的npm包库,还可以定时发邮件通知