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

Ion*_*zău 5 javascript node.js transpiler ecmascript-6 babeljs

我正在努力以编程方式使用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)
);
Run Code Online (Sandbox Code Playgroud)

这以这个错误结束:

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

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

我不想保留babel-preset-es2015和babel-core作为项目的本地依赖项。

为什么会出现这个错误呢?

Ion*_*zău 4

好吧,我开始深入调试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)
);
Run Code Online (Sandbox Code Playgroud)