2017-12-18 249 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