2020-12-10 | 使用指南 | UNLOCK | 更新时间:2022-11-15 9:57

NPM 的命令集合及相关的问题

NPM 是一个包依赖管理工具,NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题

后缀简介

-S --save        # 生产阶段的依赖
-D --save-dev    # 开发阶段的依赖
-O --save-optional    # 可选阶段的依赖
-E --save-exact       # 指定版本的依赖
-g               # 全局安装的模块

常用命令

npm ls     # 查看安装的模块列表
npm init   # 初始化package文件 -y 缩写可以略去填写
npm help   # 查看命令帮助
npm root   # 查看模块的安装路径
npm config # 管理npm的相关配置
npm cache clean # 清除模块缓存

npm install xxx       # 安装xxx模块
npm install xxx -g    # 全局安装xxx模块
npm install xxx@1.0.0 # 安装指定1.0.0版本模块

npm update xxx        # 更新xxx模块
npm uninstall xxx     # 卸载xxx模块
npm outdated          # 列出所有过时模块

修改全局包安装命令

npm config set prefix "D:\Node\node_global"  #修改全局包的安装目录
npm config set cache "D:\Node\node_cache"    #修改全局包的缓存目录
npm config ls                                #查看命令

修改目录后,添加环境变量

NODE_PATH
D:\Node\node_global\node_modules
path
D:\Node\node_global

相关工具

// 备用:淘宝源地址
npm config set registry https://registry.npm.taobao.org

// 直接访问地址,可以查看网络问题
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/

镜像源管理

nrm 是npm的镜像源管理工具,有时候国外资源太慢,使用这个就可以快速地在 npm 源间切换

npm install nrm -g

nrm ls       #查看nrm的镜像源列表和当前源
nrm use xxx  #切换到xxx的印象源

nrm add xxx http://xxx.cn/ #新增映射源
nrm del xxx  #删除指定的xxx映射源
nrm test npm #测试相应的源的相应时间

包更新管理

npm-check-updates会将package.json依赖项升级到最新版本,而忽略指定的版本;更新包依赖,所以需要全局安装

npm install npm-check-updates -g

ncu -v  #查看当前ncu版本
ncu     #检测当前项目中可以更新的包依赖
ncu -g  #对全局依赖包进行更新检测

ncu -u  #检测后可以执行对本地package更新
ncu xxx -f  #更新本地项目指定依赖包

ncu xxx -x  #筛除本地项目中需要更新的包
ncu '/^xxx.*$/'  #使用正则匹配需要更新的包

相关问题

安装出现错误 -4048 提示

可能是C盘某些文件夹,用户没有权限修改;用管理员运行CMD在执行;

eslint 规范指定目录文件

用eslint去规范指定目录下的文件

npx vue-cli-service lint D:\Project\Demo\

nrm 列表不显示星号

找到npm全局安装目录,打开 node_global\node_modules\nrm\cli.js 修改如下代码,之后重现设置即可

cli.js
- if (hasOwnProperty(customRegistries, name) && (name in registries || customRegistries[name].registry === registry.registry)) { + if (hasOwnProperty(customRegistries, name) || (name in registries || customRegistries[name].registry === registry.registry)) { registry[FIELD_IS_CURRENT] = true; customRegistries[name] = registry; }

安装提示错误 code EEXIST

残留有错误文件,把残留文件删除就行了,一般会提示残留文件目录

npm ERR! File exists: D:\node\node_modules\node_global\hexo
npm ERR! Remove the existing file and try again, or run npm

运行项目的时候,提示包依赖冲突或者包重复

versionDetect.js:90 @polkadot/util has multiple versions, ensure that there is only one installed.
Either remove and explicitly install matching versions or dedupe using your package manager.
The following conflicting packages were found
cjs 9.7.2 unknown
cjs 9.7.2 unknown

在package.json 中尝试锁定依赖包的版本

package.json
{ // ... "overrides": { "@polkadot/util": "9.7.2", "@polkadot/util-crypto": "9.7.2" }, }
NPM