环境: Mac
工具:
NPM 可通过官网查询一些模块相关
NPM Doc 通过官网文档了解更多的关于NPM的使用
安装
NPM是Node.js的包管理工具,可用于解决 Node.js在代码部署上的问题。
新版本的Node.js已经集成了NPM, 因此可通过下载 Node.js 来使用 NPM。
安装方式1:
使用安装包,进行安装,会自动配置nodejs和npm的环境变量
下载成功后, 打开终端运行命令,检测版本是否运行成功:
// 检测node.js
node -v
// 检测npm
npm -v
- 使用Homebrew安装,命令:
brew install node
卸载
- 打开终端,输入命令查看Node.js安装路径:
which node
执行该命令后,会显示安装路径:/usr/local/bin/node
2. 输入以下命令删除 Node.js 相关的文件:
sudo rm -rf /usr/local/bin/npm\
sudo rm -rf /usr/local/share/man/man1/node.1\
sudo rm -rf /usr/local/lib/dtrace/node.d\
sudo rm -rf \~/.npm\
sudo rm -rf \~/.node-gyp\
sudo rm /usr/local/bin/node
该命令会删除 Node.js 的可执行文件、npm 包管理器、手册页、DTrace 跟踪文件和用户目录下相关文件。
NPM常用命令
- 更新NPM, 主要用于能够获取最新的软件包相关
npm install npm -g
- 卸载NPM
npm uninstall npm -g
- 安装指定模块
// 安装增加 -g 命令,表示全局安装,安装包在 /usr/local 目录下的 ./node_modules中
// 没有使用-g 命令,会将安装包默认安装命令运行的所在目录的 ./node_modules中
// 安装某个模块前,都会生成 node_modules 目录
npm install ModleName
npm install ModelName -g
- 查看已安装的模块列表
npm list
npm list -g
/*
/usr/local/lib
├── corepack@0.17.0
├── express@4.18.2
├── i@0.3.7
├── npm@9.5.1
├── typescript@5.1.6
└── yarn@1.22.19
*/
- 查看已安装的模块
npm list yarn -g
/*
/usr/local/lib
└── yarn@1.22.19
*/
- 更新已安装的模块
npm update yarn -g
- 搜索模块
npm search ModelName
npm search ModelName -g
- 帮助相关
npm help
NPM常用模块推荐
- yarn 用于缓存下载的每个包,使用用法:
// 全局安装yarn模块
npm install yarn -g
// 通过yarn模块添加md5
yarn add md5
常见问题汇总
安装某个模块提示权限不足问题
问题原因: 权限不足,
解决方案: 运行命令时,增加sudo即可
示例:
sudo npm install ModelName -g
sudo npm update yarn -g
安装某个模块很慢的问题
问题原因: npm install
默认使用的安装镜像为国外镜像,因此会受网络限制.
解决方案: 替换镜像为国内, 运行终端命令
npm config set registry https://registry.npm.taobao.org
淘宝镜像过期
npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/npm failed, reason: certificate has expired
原因在于,2022年5月31号,npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com, 因此需要修改镜像
// 查看当前npm镜像设置
npm config list
// 清空缓存
npm cache clean --force
// 修改镜像
npm config set registry https://registry.npmmirror.com
// 再次运行 npm config list 查看镜像修改
yarn安装证书验证失败问题
上面的镜像过期,也可能引起该问题,类似错误:
warning package.json: No license field
[1/4] 🔍 Resolving packages...
error Error: certificate has expired
at TLSSocket.onConnectSecure (node:_tls_wrap:1674:34)
at TLSSocket.emit (node:events:518:28)
at TLSSocket._finishInit (node:_tls_wrap:1085:8)
at ssl.onhandshakedone (node:_tls_wrap:871:12)
info Visit https://yarnpkg.com/en/docs/cli/create f
临时解决方法,终端输入命令,用于跳过HTTPS验证:
yarn config set "strict-ssl" false -g