Code Runner 不能按文件名顺序批量运行,它只运行当前活动标签页的文件;需用 Node.js 脚本或 npm task 显式定义执行顺序,才能可靠控制多文件依次执行。

Code Runner 默认不控制执行顺序,它只负责“运行当前文件”——所以别指望它自动按 01-array-methods.js、02-object-iteration.js 这样的命名顺序批量执行。真要控制 JS 代码执行顺序,得靠明确的工程结构或手动调度。
Code Runner 能不能按文件名顺序批量运行?
不能。它没有内置的“按数字前缀排序并依次运行”逻辑。点击右上角 ▶ 按钮,或按 Ctrl+Alt+N,只会运行当前活动标签页里的那个文件。
- 即使你打开了多个 JS 文件,它也不会识别
01-、02-这类前缀并排序执行 - 它不读取文件系统目录结构,也不解析文件名语义
- 试图用它做“练习序列自动执行”,结果往往是随机触发某个已打开的文件
想按顺序执行多个 JS 文件,该用什么?
用 Node.js 原生命令行,配合简单脚本最可靠。比如在项目根目录下建一个 run-sequence.js:
使用约定式提交(Conventional Commits)生成标准化的 Git 提交信息。适用于以下场景: (1) 暂存更改时需要提交信息; (2) 审查 diff 时希望获得结构化摘要; (3) 编写 PR 描述或变更日志(changelog)条目; (4) 用户明确要求“为本次更改编写提交信息”。 该功能会分析已暂存/未暂存的 diff,并生成按类型(type)划分范围的提交信息。
const { exec } = require('child_process');
const files = ['01-array-methods.js', '02-object-iteration.js', '03-functional-patterns.js'];
<p>files.forEach((file, i) => {
const cmd = <code>node ${file}</code>;
console.log(<code>\n--- 执行 ${i + 1}. ${file} ---</code>);
exec(cmd, (err, stdout, stderr) => {
if (stdout) console.log(stdout);
if (stderr) console.error(stderr);
});
});- 这样能严格按数组顺序执行,且每个文件独立进程,互不干扰
- 比依赖插件更透明:出错时你能看到具体是哪个文件崩了、报什么错
- 不需要额外插件,
node命令本身就能保证执行环境一致
为什么不用 “Run on Save” 类插件来控制顺序?
像 Trigger Task on Save 或 Auto Run Task 这类插件,本质是监听保存事件,触发预设任务——但任务本身仍需你提前定义好执行链。它们不解决“顺序”问题,只解决“时机”问题。
- 你得手动写 task(例如在
.vscode/tasks.json中定义 shell 命令序列) - 一旦文件增删或重命名,task 就得同步改,维护成本不低
- 容易和 ESLint/Prettier 的保存钩子冲突,导致格式化后又触发重复运行
调试时断点失效,是不是执行顺序乱了?
不是顺序问题,是运行环境不匹配。如果你用 Code Runner 运行,它走的是“输出面板”通道,不启用调试器;而你在代码里打了断点,只有在 launch.json 配置的 type: "node" 调试会话中才生效。
-
Code Runner的 ▶ 按钮 ≠ 调试启动,它不加载 sourcemap,也不停在断点 - 想单步调试某段顺序逻辑(比如确认
map是否在filter之前执行),必须用 F5 启动调试会话 - 如果多个文件之间有依赖(如
utils.js被main.jsrequire),就别拆开运行——合并成一个入口再调试
真正需要控制 JS 执行顺序的场景,往往已经超出“快速测试”的范畴,接近脚本编排或构建流程。这时候硬靠插件打补丁,不如花两分钟写个 run.js 或配个 npm run seq。顺序这事,交给代码自己决定,比交给插件猜,稳得多。

















