Невозможно преобразовать код с помощью преобразования Babel с файлом конфигурации - PullRequest
3 голосов
/ 16 июня 2020

Это файл конфигурации:

{
    "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;

Q: Можете ли вы использовать CLI для преобразования кода?

Ответы [ 2 ]

1 голос
/ 27 июня 2020

Мы использовали babel-node в сценарии, в котором мы хотим транспилировать. https://babeljs.io/docs/en/next/babel-node.html

npx babel-node src/* --out-dir build
0 голосов
/ 26 июня 2020

Не уверен, почему преобразование , которое является асинхронной c функцией , используется внутри синхронного, блокирующего выполнения. Вместо этого используйте transformSyn c и .code

fs.writeFileSync(
    'build/script.js',
    babel.transformSync(
        fs.readFileSync('src/script.js').toString('utf8'),
        {
            plugins: ["@babel/plugin-transform-modules-commonjs"]
        }
    ).code
);

Или даже больше, вы можете использовать transformFileSyn c:

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