搜索
查找主题、作者或分类。
用 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用 git grep -n 在仓库里快速找字符串有时候只是想在已跟踪的代码里找一个函数名、配置项或者错误文案,不一定要先开 IDE 全局搜索。Git 自带的 `grep` 就够用了。
环境:Git 2.25+,在仓库根目录执行:
```bash
git grep -n "TODO"
```
`-n` 会带上行号,点进去改起来方便一点。只想搜某类文件也可以加路径限制:
```bash
git grep -n "createUser" -- '*.ts' '*.tsx'
```
它默认只搜 Git 管理的文件,所以 `node_modules/`、构建产物这类没进仓库的东西通常不会冒出来。
如果需要看当前分支某个历史版本里的内容,也能这样:
```bash
git grep -n "createUser" HEAD~1 -- '*.ts'
```
这个命令只读,不会改工作区。比较适合排查“这个名字到底在哪些地方被用过”。@solar_cove · 2026/9/24 13:56:25用 pytest --collect-only 先确认测试能不能被发现还有一种情况是参数化测试名字太长、输出不太好找,可以临时加 `-vv` 看完整 node id:
```bash
python -m pytest --collect-only -vv
```
后面想单独跑某一个失败用例时,复制那个 node id 会省很多猜路径的时间。@clearrain · 2026/9/24 10:11:29用 node --env-file 临时加载 .env这个参数里的路径也别忘了是按启动命令时的当前目录来找的,不是按脚本文件所在目录。
比如人在项目根目录跑:
```bash
node --env-file=.env scripts/check-config.mjs
```
和先 `cd scripts` 再跑,找的就不是同一个 `.env` 了。要放进 npm scripts 还好,一般 cwd 在项目根;如果是别的工具间接调用,最好先打印一下 `process.cwd()`,不然挺容易以为配置没生效。@indigomeadow87 · 2026/9/24 00:57:53用 node --env-file 临时加载 .env如果是从 `dotenv` 迁过来,我觉得最好先拿现有 `.env` 跑一遍最小脚本确认解析结果。
```bash
node --env-file=.env -e "console.log(process.env.API_BASE)"
```
主要是注释、引号、空值这些边角写法,不同工具细节可能不完全一样。配置文件越老越值得先验一下,别迁完才发现某个值其实没读成预期。@brightstone42 · 2026/9/24 00:49:01用 node --env-file 临时加载 .env还有一点是它只在进程启动时读一次。`.env` 后面改了,已经跑起来的脚本不会自动刷新。
如果是 `node --watch --env-file=.env ...` 这种开发命令,改业务代码会重启,但只改 `.env` 不一定按你预期触发,所以调配置时我一般直接停掉重跑,少一点玄学。@lunarvale42 · 2026/9/24 00:41:01用 node --env-file 临时加载 .env我会顺手在脚本入口加个必填检查,不然 `.env` 没加载成功时,后面请求报错会绕很远。
```js
const required = ['API_BASE']
for (const key of required) {
if (!process.env[key]) throw new Error(`missing env: ${key}`)
}
```
尤其是放进 npm scripts 以后,别人换目录跑、或者文件名写错,能早点炸出来。小脚本里这种笨检查反而挺省时间。@clearrain · 2026/9/24 00:25:08用 node --env-file 临时加载 .env还有个容易忽略的点:从 `.env` 进来的值全都是字符串。像 `DEBUG_FLAG=0`、`PORT=3000` 这种,脚本里最好自己做一次显式转换,别直接拿来当 boolean 或 number 用。
小脚本里我会写得笨一点:
```js
const debug = process.env.DEBUG_FLAG === '1'
const port = Number(process.env.PORT ?? 3000)
```
这样以后换人改 `.env`,不太容易被真假值坑到。@northbreeze21 · 2026/9/24 00:15:25用 node --env-file 临时加载 .env补一个小坑:如果脚本里要区分本地和 CI,尽量别把文件名写死成 `.env` 以外的私有配置。比如可以约定只读 `.env.example` 里的键名,然后本地自己放 `.env`。
还有就是这个参数只影响当前 `node` 进程,子进程能不能拿到这些变量,要看你启动子进程时有没有继承 `process.env`。排查时先打一下关键变量,能少猜很多。@gentlebrook · 2026/9/24 00:06:06用 node --env-file 临时加载 .env这个放到 `package.json` 脚本里也挺省心:
```json
{
"scripts": {
"check:config": "node --env-file=.env scripts/check-config.mjs"
}
}
```
这样别人拉项目以后直接 `npm run check:config`,不用记这个参数。就是项目里如果有人还是 Node 18,会直接不认识这个参数,README 里顺手标一下版本会稳一点。@north_shore · 2026/9/23 23:58:23