You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Babel递归转译server目录下所有JS文件(含根目录文件)

解决Babel转译Server根目录及子目录所有JS文件的问题

你的问题出在glob匹配模式上:./server/**/*.js只会匹配server目录下所有子目录中的.js文件,不会包含server根目录本身的文件(比如index.js、model.js这些)。

这里有两种简单的修改方式,都能实现同时转译根目录和子目录的所有.js文件:

方式1:使用Brace Expansion简化匹配

调整你的脚本为:

"scripts": {
  "prepare": "babel ./server/{,**/}*.js --retain-lines -d ./dist"
}

这个glob模式里的{,**/}是shell的 brace 扩展语法:

  • 逗号前的空值匹配server根目录
  • 逗号后的**/匹配server下所有层级的子目录
    两者结合就能覆盖根目录+所有子目录的.js文件。

方式2:显式指定两个匹配路径

如果你觉得brace扩展不好理解,也可以直接把根目录和子目录的匹配路径分开写,用空格分隔:

"scripts": {
  "prepare": "babel ./server/*.js ./server/**/*.js --retain-lines -d ./dist"
}

这种写法更直观,./server/*.js负责匹配根目录的.js文件,./server/**/*.js负责子目录的文件。

额外提示

如果是在Windows原生CMD环境下,brace扩展可能不生效,这时候推荐第二种方式,日常开发中用Git Bash、WSL或者macOS/Linux的终端,两种方式都能正常工作。

内容的提问来源于stack exchange,提问作者OctaviaLo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:09:33