我正在尝试运行一个运行 javascript ES6 代码的 Github Action。此前,我 在目标 javascript 文件 (en.js) 中的“export”关键字上收到“意外标记”错误,因此我尝试让 Babel 首先对其进行转译。
在工作流程中成功加载 babel-cli 后,Action 错误为:
Run npx babel ./src/localization --out-dir ./.github/workflows/babel-output
Error: Requires Babel "^7.0.0-0", but was loaded with "6.26.3". If you are sure you have a
compatible version of @babel/core, it is likely that something in your build process is loading the wrong version.
如果我尝试安装 babel 7,错误是:
Run npm install -g --legacy-peer-deps babel@^7.0.0-0
npm ERR! code ETARGET
npm ERR! notarget No matching version found for babel@^7.0.0-0.
npm ERR! notarget In most cases you or one of your dependencies are requesting a package version that doesn't exist.
任何人都可以建议一种继续进行的方法吗?
工作流程yml文件是:
name: Compare Localization Keys
on:
pull_request:
branches:
- localization_keys_comparison2
push:
branches:
- localization_keys_comparison2
jobs:
compare_keys:
name: Compare Localization Keys
runs-on: ubuntu-latest
steps:
- name: Get Code
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: "18"
- name: Add dependency
run: yarn add @actions/core
- name: Add dependency
run: yarn add flat
#it needs babel ^7 - 6.xx detected
- name: Uninstall Wrong Babel Version
run: npm uninstall -g babel
#- name: Install Babel 7
#run: yarn add babel@^7.0.0
#run: npm install -g --legacy-peer-deps babel@^7.0.0-0
- name: Install Babel Cli
#run: yarn add --global babel-cli
run: npm install --legacy-peer-deps --global babel-cli
- name: Transpile JavaScript with Babel
run: npx babel ./src/localization --out-dir ./.github/workflows/babel-output
- name: Run comparison javascript file
run: node --trace-warnings --experimental-modules ./.github/compare_localization_keys.js
compare_localization_keys.js 文件(上面)引用了 babel-output 文件夹中预期转译的 en.js 文件,但我们在工作流程中还没有成功走到这一步。
.babelrc 文件是:
{
"presets": ["@babel/preset-env"]
}
en.js 文件是:
export const en = {
common: {
loading: "Loading...",
//.. other object properties
},
};
总体目标是创建一个 github 操作来比较 javascript 文件中的两个对象。
如有任何意见或建议,我们将不胜感激。
如果您在
type: module
中设置 package.json
并且不使用任何非标准语法,则不需要 Babel。
如果你确实想要 babelify,
babel
包已被弃用,没有 v7。使用 @babel/cli
、@babel/core
和 @babel/preset-env
。 @babel/cli
提供命令 (npx babel src ...etc
)。目标是让它们全部使用相似的版本(例如 npm i @babel/cli@latest @babel/core@latest @babel/preset-env@latest
或 @babel/[email protected]
等等)。