babel.transform()函数不使用.babelrc或package.json配置

时间:2017-12-18 02:56:34

标签: javascript babeljs babel

我正在尝试使用Babel将ES6转换为已加载到变量中的ES5。但是,我发现与Babel文档相反, babel.transform() 没有使用配置文件来转换代码。

以下内容说明了我的问题:

的package.json:

{
    "name": "babel-test",
    "version": "1.0.0",
    "main": "index.js",
    "babel": {
        "presets": [
            ["env", {
                "targets": {
                    "ie": 8
                }
            }]
        ]
    },
    "devDependencies": {
        "babel-core": "^6.26.0",
        "babel-preset-env": "^1.6.1"
    }
}

test.js

const a = 0

index.js:

const babel = require('babel-core')
console.log(babel.transform('const a = 0').code)
console.log(babel.transformFileSync('test.js').code)

CLI:

$ node index.js
const a = 0;
"use strict";

var a = 0;

正如您所见 babel.transformFileSync() 正在使用配置而 babel.transform() 则不然。

如何让 babel.transform() 使用配置文件?

1 个答案:

答案 0 :(得分:1)

相对于正在编译的文件搜索

.babelrc个文件,因此如果它不知道文件的名称,则无法找到它。

babel.transform('const a = 0', {filename: "test.js"}).code)
例如,

将起作用。