以编程方式将预设传递给 babel

Passing a preset to babel programmatically

我很难以编程方式使用 babel

"use strict";

const babel = require("babel-core")
    , es2015 = require("babel-preset-es2015")
    ;

babel.transformFile("my-file.js", {
   presets: [es2015]
}, (err, result) =>
  console.log(err || result)
);

此错误结束:

Couldn't find preset "es2015" relative to directory "/Users/myusername"

不过,我确实安装了 babel-preset-es2015 作为本地依赖项。如何解决这个问题?

我不想将 babel-preset-es2015babel-core 保留为项目的本地依赖项。

为什么会出现这个错误?

好吧,我开始深入调试 babel-core 并找到了 opts.babelrc !== false 的检查。

我的主目录中可能有一个.babelrc,但由于我想以编程方式使用babel,所以我只想忽略它,所以我在选项中使用babelrc: false :

"use strict";

const babel = require("babel-core")
    , es2015 = require("babel-preset-es2015")
    ;

babel.transformFile("my-file.js", {
   presets: [es2015]
 , babelrc: false
}, (err, result) =>
  console.log(err || result)
);