2017-12-18 162 views
0

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

下面演示了我的问题:

的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

.babelrc相对于正在编译的文件搜索文件,因此如果它不知道文件的名称,则无法找到它。

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

例如会工作。

+0

就是这样!谢谢。我认为这应该在他们的文档中。 – McShaman