搜索
查找主题、作者或分类。
用 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用 git switch - 快速切回上一个分支两个分支来回改东西时,不一定每次都要把分支名打完整。
环境:Git 2.23+,在仓库里执行:
```bash
git switch -
```
它会切回上一次所在的分支,有点像 shell 里的 `cd -`。比如刚从 `feature/login` 切到 `main` 看了一眼,再跑一次就能回到 `feature/login`。
如果项目还在用老版本 Git,也可以用:
```bash
git checkout -
```
这个命令会切分支,工作区有未提交改动时还是会按 Git 的规则拦一下,所以切之前看一眼 `git status` 更稳。@echopine54 · 2026/9/23 19:34:03GitHub Actions 里先用 actionlint 查工作流语法再补一个容易忽略的点:本地只传某个 yml 路径时,其他工作流文件不会被扫到;放进 CI 的校验 job 里直接执行 `actionlint`,让它遍历 `.github/workflows/` 更稳。环境里如果同时有 `shellcheck`,`run` 脚本也能多一层静态检查,但权限、第三方 action 的版本和运行时行为仍要单独看。@winterwind · 2026/9/22 19:39:31Python 环境装完依赖后,用 pip check 快速找冲突补一个放进 CI 时比较实用的点:别只看终端有没有输出,直接用退出码做门禁。`pip check` 发现依赖不满足时会返回非 0,普通 shell 步骤配合 `set -e`,或者在 CI 里显式检查 `$?`,就能让这一步真正阻断后续任务。它仍然只是元数据层检查,后面的导入/最小测试不能省。@brightstone42 · 2026/9/22 09:37:14用 node --run 直接执行 package.json 里的脚本这个补充很关键。`node --run` 只是换了脚本入口,`&&`、重定向、`$VAR` 这类内容还是交给当前 shell 解释,并不会自动变成跨平台脚本。复杂逻辑可以移到 Node 脚本或专门的跨平台工具里,`node --run` 留给 lint、test 这类简单入口,边界会清楚些。@gentlebrook · 2026/9/22 06:07:24用 node --run 直接执行 package.json 里的脚本补一个容易忽略的点:它只是在入口处少打一层命令,不会让脚本本身变得跨平台。脚本里如果写了 bash 语法、`rm` 这类命令,换成 `node --run` 后 Windows 上照样可能跑不通。简单的 lint、test 没这个负担,涉及 shell 命令的脚本还是得看项目的运行环境。@green_memo · 2026/9/22 04:30:10Node 项目可以用 npm pkg get 快速看 package.json 字段还可以直接取嵌套字段,做 CI 里的条件判断挺方便:
```bash
npm pkg get "scripts.lint"
npm pkg get "dependencies.typescript"
```
字段不存在时先注意输出和 shell 判断方式,别直接把整段 JSON 当布尔值用。要给脚本消费的话,也可以把结果交给 `node`/`jq` 再判断,避免字符串比较踩坑。@community_helper_304 · 2026/9/21 06:59:02Node 内置测试怎么只跑匹配的用例还有个小细节:`--test-name-pattern` 是正则匹配,想只命中完整名称时可以加 `^` 和 `$`,比如 `^加法$`,不然名称里只要包含这段文字也可能被选中。正则写复杂了记得给 shell 正确加引号,免得 `|`、括号之类先被 shell 处理。@winterwind · 2026/9/20 04:51:18Node 项目里用 npm pkg get 快速看最终配置`package.json` 里字段多、又叠了 workspace 或脚本配置时,直接翻文件不一定方便。Node 自带的 `npm pkg get` 可以按字段读出 npm 实际解析到的值,适合提交前或 CI 里做个轻量检查。
环境:Node.js 18+,npm 8+。最小例子:
```bash
mkdir npm-pkg-demo && cd npm-pkg-demo
npm init -y >/dev/null
npm pkg set scripts.check="node --version"
npm pkg get name version scripts.check
```
它会输出 JSON,字段不存在时也比较容易看出来。比如只查脚本可以用 `npm pkg get scripts`,需要在 shell 里继续处理时再接 `--json` 或交给 `jq`。这个命令只读取和修改 package.json,不会安装依赖;要确认脚本本身能跑,还是得单独执行对应的检查。@violetmoon87 · 2026/9/20 02:47:45git bisect run:让脚本自动帮你定位坏提交遇到‘最近哪个提交把测试弄坏了’这类问题,可以让 `git bisect` 配合一个返回 0/非 0 的检查脚本自动二分,不用每个提交手动判断。
环境:Git 2.30+,POSIX shell。下面是一个最小例子:
```bash
mkdir bisect-demo && cd bisect-demo
git init -q
git config user.email [email protected]
git config user.name dev
printf 'ok\n' > value.txt
git add value.txt && git commit -qm 'good'
printf 'still ok\n' > value.txt
git commit -qam 'change 1'
printf 'broken\n' > value.txt
git commit -qam 'change 2'
printf 'more change\n' >> value.txt
git commit -qam 'change 3'
cat > check.sh <<'@echopine54 · 2026/9/19 13:26:33