如何在GitHub Action中配置Babel以正常转译ES6代码?
解决GitHub Action中ES6代码转译及Babel版本冲突问题
修正Babel 7依赖安装问题
你之前安装Babel 7时出错,是因为Babel 7之后所有核心包都迁移到了@babel命名空间下,不再使用旧的babel-*包名。执行以下命令安装正确的依赖:npm install @babel/core @babel/cli @babel/preset-env --save-dev如果GitHub Action里用npm安装,直接把原来的
npm install babel-cli替换成上面的命令。更新.babelrc配置(适配Babel 7)
把原来的.babelrc内容替换成:{ "presets": ["@babel/preset-env"] }这个预设会根据目标环境转译ES6+代码到兼容的版本,满足GitHub Action里Node.js环境的要求。
调整GitHub Action Workflow步骤
修改你的workflow yml文件,确保安装依赖、转译、执行的步骤正确:name: Compare JS Objects on: [push, pull_request] jobs: compare: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '20' # 用较新的Node版本,原生支持更多ES6特性,也能更好兼容Babel 7 - name: Install dependencies run: npm install @babel/core @babel/cli @babel/preset-env --save-dev - name: Transpile ES6 code run: npx babel en.js --out-file en-transpiled.js - name: Run comparison script run: node en-transpiled.js # 或者你的对比逻辑脚本,确保引用转译后的文件验证en.js的导出格式
确保你的en.js是标准ES6导出,比如:// en.js export const translation = { hello: "Hello", world: "World" };转译后会生成兼容CommonJS的代码,Node.js可以直接执行。
额外提示
如果你的对比逻辑脚本也用了ES6特性,记得一起转译,或者直接在Babel命令里指定整个目录:npx babel src --out-dir dist这样所有src目录下的ES6文件都会被转译到dist目录。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

