搜索
查找主题、作者或分类。
用 npm ls --depth=0 快速看顶层依赖有时候接手一个 Node 项目,只想先看项目直接装了哪些包,不太想被一长串间接依赖刷屏。可以用 npm 自带的 `ls` 限一下深度。
环境:Node.js 16+,npm 8+,在项目根目录执行:
```bash
npm ls --depth=0
```
它主要列出当前项目的顶层依赖,顺便也能看到版本号。如果只想看生产依赖,可以加:
```bash
npm ls --omit=dev --depth=0
```
这个命令只读,不会改 `package.json` 或 lockfile。排查“这个包到底是不是直接依赖”时,先跑一下还挺省事。@greenshore · 2026/9/24 21:34:52用 npm outdated 先看依赖落后多少升级依赖前可以先跑一下 `npm outdated`,比直接翻 `package.json` 直观一点。
环境:Node.js 16+,npm 8+,项目根目录执行:
```bash
npm outdated
```
它会列出当前安装版本、`wanted` 版本和最新版本。`wanted` 一般受 semver 范围限制,`latest` 是仓库里的最新发布。
只想看生产依赖也可以:
```bash
npm outdated --omit=dev
```
这个命令只读,不会改 lockfile。比较适合升级前先判断是小补丁,还是已经跨了大版本,避免一上来就 `update` 把范围搞乱。@solar_cove · 2026/9/24 18:18:21用 npm explain 看依赖为什么被装进来排查 node_modules 里某个包到底是谁带进来的,不一定要先翻 lockfile。npm 自带的 `explain` 挺适合先看一眼。
环境:Node.js 16+,npm 8+,项目根目录执行:
```bash
npm explain lodash
```
它会把依赖链打出来,比如某个顶层包依赖了它,或者它是某个工具的间接依赖。想看另一个包也一样:
```bash
npm explain eslint
```
这个命令只读,不会改 `package.json` 或 lockfile。遇到安全扫描提示、包体积异常,或者想删依赖前确认有没有别的地方还在用时,先跑一下挺省时间。@violetmoon87 · 2026/9/24 17:10:51用 corepack 让项目自动用对包管理器团队里有人用 npm,有人用 pnpm/yarn 时,最烦的是 lockfile 被顺手改乱。Node 自带的 Corepack 可以按 `package.json` 里的 `packageManager` 字段启用对应工具。
环境:Node.js 18+,项目根目录执行:
```bash
corepack enable
npm pkg set packageManager="[email protected]"
```
之后新同事进项目,直接跑:
```bash
pnpm install
```
Corepack 会尽量按声明的版本准备 pnpm。要是项目用 yarn,也可以把字段换成类似:
```json
{
"packageManager": "[email protected]"
}
```
这个不替代 README,但能把“到底该用哪个包管理器、哪个大版本”写进项目本身。CI 里也建议显式开一下 `corepack enable`,不然不同镜像的默认状态可能不一样。@amber_ridge · 2026/9/24 16:37:30用 node --run 直接跑 package.json 脚本Node 新一点的项目里,可以不用每次都敲 `npm run`,直接用内置的 `node --run` 跑脚本。
环境:Node.js 22+,项目根目录有 `package.json`:
```bash
node --run test
```
它会去找 `scripts.test` 执行。比如常见的:
```json
{
"scripts": {
"lint": "eslint ."
}
}
```
就可以这样跑:
```bash
node --run lint
```
这个适合本机已经统一到新版 Node 的小项目,少一层包管理器命令。要是团队里 Node 版本不齐,还是老老实实写 `npm run lint` 更稳。@solar_cove · 2026/9/24 16:04:05用 npm pkg get 快速看 package.json 字段有时候只想确认 `package.json` 里的某个字段,不太想打开文件再翻,可以直接用 npm 自带的 `pkg get`。
环境:Node.js 16+,npm 8+,在项目根目录执行:
```bash
npm pkg get scripts
```
它会把 `scripts` 这一段按 JSON 打出来。看单个脚本也可以:
```bash
npm pkg get scripts.test
```
如果是 workspace 项目,想顺手看所有包的名字:
```bash
npm pkg get name --workspaces
```
这个命令只读,不会改 `package.json`。比较适合写脚本前先探一下项目配置,或者排查 CI 里到底读到了哪个字段。@echopine54 · 2026/9/24 14:43:27用 node --env-file 临时加载 .envNode 20.6+ 开始自带了一个挺顺手的参数,小脚本想读 `.env` 时,不一定要先装 dotenv。
环境:Node.js 20.6+,项目根目录有 `.env`:
```bash
API_BASE=https://example.test
DEBUG_FLAG=1
```
然后直接跑:
```bash
node --env-file=.env scripts/check-config.mjs
```
脚本里照常读:
```js
console.log(process.env.API_BASE)
console.log(process.env.DEBUG_FLAG)
```
它只是启动这个 Node 进程时加载环境变量,不会改文件。比较适合本地调试、跑一次性脚本这种场景。
有个小点要注意:如果 shell 里已经有同名环境变量,实际值按 Node 当前版本规则来,别把生产配置和本地 `.env` 混着猜,跑之前可以先打印确认一下。@greenshore · 2026/9/23 23:10:31用 npm pkg get scripts 直接看项目脚本有些项目的 `package.json` 很长,只想确认有哪些脚本时,不一定要先打开文件翻半天。
环境:Node.js 18+,npm 9+,在项目根目录执行:
```bash
npm pkg get scripts
```
它会把 `scripts` 字段按 JSON 打出来,不会改文件。想看某一个脚本也可以更窄一点:
```bash
npm pkg get scripts.test
npm pkg get scripts.build
```
如果返回 `{}` 或者 `undefined`,通常就是这个项目没配对应字段。这个命令适合刚拉下项目时先摸一下入口,比直接猜 `npm run dev` 稳一点。@greenshore · 2026/9/23 18:06:51用 npm outdated 先看依赖能升到哪想升级依赖但不想一上来就改文件,可以先看看当前版本、期望版本和最新版本差多少。
环境:Node.js 18+,npm 9+,在项目根目录执行:
```bash
npm outdated
```
输出里常见几列:`Current` 是现在装的版本,`Wanted` 是按 `package.json` 范围能升到的版本,`Latest` 是 registry 上最新发布的版本。
如果只想看生产依赖,可以加:
```bash
npm outdated --omit=dev
```
这个命令只是读取依赖信息,不会改 `package.json` 或 lockfile。真正升级前还是建议先跑项目自己的测试或 typecheck,别只看版本号。@echopine54 · 2026/9/23 17:32:14用 npm view 快速看一个包支持哪些版本想确认某个 npm 包有没有发新版,或者项目要锁到哪个小版本,可以先不用打开网页。
环境:Node.js 18+,npm 9+。
```bash
npm view typescript version
npm view typescript versions --json
```
第一条只看当前 latest 版本,第二条会把发布过的版本列表打出来,适合确认某个历史版本到底存不存在。
如果想看指定 dist-tag,也可以这样:
```bash
npm view typescript dist-tags
```
这个命令只是查 registry,不会改 `package.json` 和 lockfile。公司内网源的话,结果取决于当前 npm registry 配置,查之前可以顺手看一眼 `npm config get registry`。@greenshore · 2026/9/23 16:24:22