Node.js 起步必知
刚接触 Node.js 的人常被 .npmrc 21 个配置项吓到。这篇只挑最常用的几项给新手,配合 5 个常见错误码 + 3 个进阶建议,5 分钟读完就能跑通项目。
一、最常用的 4 个 .npmrc 配置
1 | # 1. 国内镜像(速度) |
完整 12 项 + 4 类场景模板见 .npmrc 配置实战。
二、5 个最常见错误码
ETARGET
package.json 写了 engines: { node: ">=18" },但你装的是 Node 16。
解决:升级 Node,或临时关掉检查:
1 | npm install --engine-strict=false |
ERESOLVE peer dep
npm 7+ 严格检查 peer dependencies,老项目升级时常见:
1 | npm error While resolving: react@18.2.0 |
解决:
1 | npm install --legacy-peer-deps |
或加到 .npmrc 永久生效。
EACCES permissions
全局装包要 sudo。
解决:用 nvm 装 Node 到用户目录(推荐),别用 sudo 装全局。
ECONNRESET / ETIMEDOUT
网络问题,npm 装到一半断了。
解决:
1 | npm config set registry https://registry.npmmirror.com/ |
EPEERINVALID
两个包 peer 需求冲突(如 React 17 组件库 + React 18)。
解决:升级组件库到支持新 React 的版本,或用 overrides 字段强制。
三、版本管理:nvm / fnm / volta
多 Node 版本管理必备,单装一个版本会到处撞墙。
nvm(最流行)
1 | # 装 nvm(macOS / Linux) |
fnm(Rust 写的,更快)
1 | brew install fnm |
volta(自动切版本)
1 | brew install volta |
1 | // package.json 里加 |
进项目目录自动切到指定 Node 版本。
四、Node 22 LTS 新特性(2024-10 发布的活跃 LTS)
1 | # 确认版本 |
值得用上的 5 个新特性:
1. 内置 .env 文件支持(实验性)
1 | node --env-file=.env app.js |
不再需要 dotenv 包。
2. 内置 fetch(稳定)
Node 18+ 已内置,Node 22 优化了性能。node-fetch 库不再需要。
1 | const res = await fetch('https://api.example.com/data') |
3. 内置 WebSocket
1 | import { WebSocket } from 'node:ws' |
4. 性能提升
- V8 12.x 引擎,HTTP 性能提升 20%
- 启动时间快 15%
- 内存占用降低
5. 更好的 ESM 支持
1 | // package.json |
1 | // 现在 import 完整路径 |
五、3 条进阶建议
5.1 用 npm ci 不用 npm install(CI)
1 | # CI 必用:删 node_modules 后按 lock 重装 |
npm ci 速度快 2-3 倍,且严格按 lock,不会偷偷升级。
5.2 用 engines 字段锁 Node 版本
1 | { |
.npmrc 加 engine-strict=true,不一致就报错。
5.3 package-lock.json 必须提交 git
.gitignore 别忽略它。lock 文件是团队协作的关键——保证所有人装到一样的版本。
六、5 分钟起步 checklist
1 | [ ] 装 nvm |
跑完这 7 步,新 Node 项目就 ready 了。
七、4 个常见误区
7.1 不要 sudo 装全局包
1 | # ❌ sudo npm install -g xxx |
7.2 不要混用 yarn 和 npm
1 | # ❌ 项目里既有 yarn.lock 又有 package-lock.json |
7.3 不要忽略 .npmrc 提交
团队共享的 .npmrc(registry、save-exact)必须提交 git。个人偏好(init-author-email)放用户级。
7.4 不要锁 major 版本用 ^
1 | { |
^4 允许升到 4.x.x 但不升到 5.0.0。生产项目用 ~4.17.21(仅补丁版本)或 4.17.21(完全锁)。
八、参考
- .npmrc 配置实战 — 完整 21 项 + 4 类场景
- nodejs.org — 官方
- github.com/nvm-sh/nvm — nvm
- volta.sh — 自动切版本
- docs.npmjs.com — npm 官方文档