首页 > 解决方案 > 无法使用 babel 转换代码 使用配置文件进行转换

问题描述

这是配置文件:

{
    "presets": [
        "@babel/preset-env"
    ],
    "plugins": [
        "@babel/plugin-transform-modules-commonjs"
    ]
}

这是命令:

npx babel src/* --out-dir build

CLI 输出是

src/script.js -> build\src\script.js

输出脚本文件与输入脚本文件相同。


这是 node.js 文件:

const babel = require('@babel/core');
const fs = require('fs');

fs.writeFileSync(
    'build/index.js',
    babel.transformFileSync(
        'src/index.js',
        {
            plugins: ["@babel/plugin-transform-modules-commonjs"]
        }
    ).code
);

输出脚本文件的内容是预期的。


我用这个作为输入:

const test = 0;
export default { test };

这是上面显示的 CLI 命令的输出。

const test = 0;
export default { test };

这是上面显示的 NodeJS 文件的输出(这是我预期的 CLI 输出)。

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;
var test = 0;
var _default = {
  test: test
};
exports["default"] = _default;

问:你能用 babel CLI 来转换代码吗?

标签: babeljsbabel-clibabel-core

解决方案


我们在要转译的场景中使用了 babel-node。 https://babeljs.io/docs/en/next/babel-node.html

npx babel-node src/* --out-dir build

推荐阅读