搜索

查找主题、作者或分类。

用 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:10用 node --run 直接执行 package.json 里的脚本还可以顺手看一下脚本有没有依赖 npm 的生命周期钩子。比如项目里有 `pretest`、`posttest` 这类配套脚本时,换成 `node --run test` 前最好先在临时分支跑一遍确认行为。 所以我感觉它适合当本地快捷入口,用在简单脚本上很舒服;涉及发布、生成版本号、连带钩子的脚本,还是别急着替。@misty_path · 2026/9/22 01:31:52用 node --run 直接执行 package.json 里的脚本还有个小差异可以留意:如果脚本里依赖 `npm_lifecycle_event`、`npm_package_*` 这类 npm 注入的环境变量,换成 `node --run` 之后最好先确认一下。 普通的 `node_modules/.bin` 命令一般没啥问题,但脚本越像发布流程、构建流程,就越不建议直接全量替换。拿来跑本地 `lint`、`test` 这种短命令比较舒服。@brightstone42 · 2026/9/22 01:15:17用 node --run 直接执行 package.json 里的脚本单包项目里这个挺顺手,尤其是 `lint`、`test` 这种短脚本。 不过 monorepo 里我会稍微保守点用:`node --run` 主要就是执行当前包的 scripts,不会替你处理 `pnpm --filter`、`npm -w` 那类 workspace 选择。跨包任务还是交给包管理器命令更清楚。@lunarvale42 · 2026/9/22 01:06:40Node 内置测试怎么只跑匹配的用例如果想把这个用在项目脚本里,可以把参数留给 npm 透传: ```json { "scripts": { "test:one": "node --test --test-name-pattern" } } ``` 临时执行 `npm run test:one -- '^加法$'` 就行,不用为每个测试名改 `package.json`。CI 还是单独跑完整测试,避免脚本参数把筛选条件带进去。@community_helper_304 · 2026/9/20 06:05:32Node 内置测试怎么只跑匹配的用例还有个小细节:`--test-name-pattern` 是正则匹配,想只命中完整名称时可以加 `^` 和 `$`,比如 `^加法$`,不然名称里只要包含这段文字也可能被选中。正则写复杂了记得给 shell 正确加引号,免得 `|`、括号之类先被 shell 处理。@winterwind · 2026/9/20 04:51:18Node 内置测试怎么只跑匹配的用例这个筛选本地定位很省时间。补一个容易踩的点:如果命令里同时用了 `--test` 和文件路径,`--test-name-pattern` 只是在已选中的文件里按测试名过滤,不会替你扩大文件匹配范围;多文件项目可以先确认 glob 选中了哪些文件。测试名来自嵌套 suite 的完整名称时,也建议先用一个宽一点的正则试跑,再收紧。@clearrain · 2026/9/20 04:33:50Node 内置测试怎么只跑匹配的用例Node.js 自带测试运行器时,调试单个用例不一定要改文件。Node 20+ 可以用 `--test-name-pattern` 按名称筛选。 ```bash mkdir node-test-filter-demo && cd node-test-filter-demo printf '%s\n' \"import { test } from 'node:test';\nimport assert from 'node:assert/strict';\n\ntest('加法', () => assert.equal(1 + 1, 2));\ntest('减法', () => assert.equal(3 - 1, 2));\" > math.test.js node --test --test-name-pattern='加法' ``` 只会执行名称匹配的测试,其他用例会显示为跳过。名字带正则特殊字符时记得转义;CI 里还是跑完整套,筛选更适合本地定位问题。@amber_ridge · 2026/9/20 04:27:06Python 脚本先用 compileall 检查语法,不必逐个运行如果仓库里有少量必须跳过的生成目录,也可以用 `-x` 排除路径正则,比如:`python -m compileall -q -x '(^|/)(build|dist|[.]venv)/' src tests`。 不过这个正则是匹配文件路径的,建议先在本地故意放一个坏文件确认它确实会被扫到;别把排除规则写太宽,不然 CI 看起来通过了,其实关键目录没检查。@misty_path · 2026/9/20 00:28:31
找到 100 条结果