Node、NPM 实用指南及踩坑记录

474 阅读2分钟

1. 常用命令

node -v // 查看 node 版本
npm --version // 查看 npm 版本
npm cache clean --force // 清理缓存

2. 更改 npm 源

首先,查看一下原有的 npm 源:

npm config get registry
结果:https://registry.npmjs.org/

然后更改为淘宝源,这样可以使安装依赖的速度更快:

// 新
npm config set registry https://registry.npmmirror.com
// 旧
npm config set registry https://registry.npm.taobao.org

再查看一下 npm 源,已经更新成功了:

npm config get registry
结果:https://registry.npm.taobao.org/

或者可以安装 cnpm,与 npm 命令分开使用:

npm install -g cnpm --registry=https://registry.npmmirror.com

3. 切换 Node 版本

方式 1: n 模块

n 16.8.0 // 安装 16.8.0 的版本并切换到该版本

前提是要全局安装 n,但是 Windows 系统可能安装不了

方式 2: nvm

nvm version // 查看 nvm 的版本
nvm ls-remote // 列出全部可安装的 node 版本(Windows系统不可用)
nvm list available // 列出全部可安装的 node 版本
nvm list // 列出已下载的 node 版本
nvm install 16.8.0 // 安装特定的 node 版本
nvm use 16.8.0 // 使用特定的 node 版本

Mac 上 安装 nvm 详见:juejin.cn/post/711936…

4. npm install 时出现版本冲突问题

报错信息:

npm ERR! Conflicting peer dependency: webpack@4.46.0
npm ERR! node_modules/webpack
npm ERR!   peer webpack@"^4.0.0" from css-loader@2.1.1
npm ERR!   node_modules/css-loader
npm ERR!     dev css-loader@"^2.1.1" from the root project
npm ERR!     peer css-loader@"*" from vue-loader@13.7.3
npm ERR!     node_modules/vue-loader
npm ERR!       dev vue-loader@"^13.3.0" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

解决方法:
采用 npm i --legacy-peer-deps 来安装,意思是忽略版本冲突,用 npm v7 之前的旧方式安装依赖,允许存在多个版本的依赖。

5. npm install 时报错获取不到属性 pickAlgorithm

报错信息:

npm ERR! Cannot read properties of null (reading 'pickAlgorithm')

解决方法:
清下缓存 npm cache clear --force 再重新安装即可

6. --global、--local 已弃用

报错信息:

npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

解决方法:

  1. 找到 nodejs 安装路径下的 npm.cmdnpm 文件
  2. 将代码中的 prefix -g 替换成 prefix --location=global
  3. 如果 Windows 无法直接编辑,可把文件移到桌面,编辑完再移回去

参考文档:blog.csdn.net/LIZHUOLONG1…

7. 安装的 debug 依赖包里缺少文件

运行 npm run dev 时报错:

node:internal/modules/cjs/loader:361
      throw err;
      ^

Error: Cannot find module 'D:\code\express-mock\node_modules\debug\src\index.js'. Please verify that the package.json has a valid "main" entry

解决方法:
删掉 package-lock.json 再重新 npm install 即可

8. node、node-sass、sass-loader 版本匹配

5d3fd2526f22a1c25768eb46a9ccb290.png

Dingtalk_20230822150826.jpg

例如:如果 node 版本为 16.15.1,则应在 package.json 中指定 node-sass 和 sass-loader 版本:

"node-sass": "^6.0.0"
"sass-loader": "^10.0.0"