Тестирование babel-preset-env с помощью package.json

Нуб вопрос тут. Пытаясь убедить себя, что babel-preset-env работает.

Я устанавливаю babel-core а также babel-preset-env:

yarn add --dev babel-core
yarn add --dev babel-preset-env

мой package.json имеет:

"babel": {
  "presets": [
    [
      "env",
      {
        "targets": {
          "browsers": [
            "IE >= 8"
          ]
        }
      }
    ]
  ]
},

Я создаю JS-скрипт для тестирования:

fs.readFile('my.js', 'utf8', (err, data) => {
  if (err) throw err;

  let babel = require("babel-core");
  let result = babel.transform(data).code;
});

Я тестирую с помощью стрелок в my.js:

new Promise((resolve, reject) => {
  console.log('whatever');
});

Неважно, как я настраиваю targets.browsersфункция стрелки не конвертируется.

1 ответ

Протестировал это с babel-cli, Работает.

Понятно, что babel-core (Javascript API Babel) ничего не берёт из package.json,

Здесь также подана проблема: https://github.com/babel/babel/issues/7647

Документы JS API, вероятно, должны быть обновлены.

Для того, чтобы использовать babel-preset-env в JS API:

const { execFile } = require('child_process');
const ug = require('uglify-es');
const { execFile } = require('child_process');
execFile('npx', ['babel', 'my.js'], (err, data, stderr) => {
  if (err) throw err; // U get the idea

  let result = ug.minify(data, { mangle: { toplevel: true } }).code;
});
Другие вопросы по тегам