2017-03-15 65 views
1

當使用IE11,我得到的錯誤,如下面的任何地方我的代碼使用Object.entries或Object.values:如何在Aurelia CLI應用程序中通過Babel Transpile Object.entries/values?

Unhandled rejection TypeError: Object doesn't support property or method 'entries'...

我的問題我想從沒有被transpiled到ES5代碼莖,但不知道如何在使用Aurelia CLI時檢查或更改Transpiling/Babel的項目設置。

尋找到它進一步,我相信,隨着Aurelia大街包裝巴貝爾/設置不支持Object.entries /值(或其他建議ES2017選項),所以我裝babel-preset-es2017babel-plugin-transform-runtime每另一個線程 - Babel support for Object.entries

然而,我無法弄清楚如何更新項目以包括這些用於轉運。在transform-runtime中增加aurelia.json.babelrc文件中斷au run,並簡單地將es2017添加到.babelrc文件中,似乎沒有做任何事情。我也在查看jsconfig.jsontranspile.js文件,但找不到解決方案。

aurelia.json文件:

... 
"transpiler": { 
    "id": "babel", 
    "displayName": "Babel", 
    "fileExtension": ".js", 
    "options": { 
     "plugins": [ 
      "transform-es2015-modules-amd", 
      "transform-runtime" <---tried 
     ] 
    }, 
    "source": "src/**/*.js" 
}, 
... 

.babelrc文件:

{ 
    "sourceMap": true, 
    "moduleIds": false, 
    "comments": false, 
    "compact": false, 
    "code": true, 
    "presets": ["es2015-loose", "stage-1", "es2017"], <---tried 
    "plugins": [ 
     "syntax-flow", 
     "transform-decorators-legacy", 
     "transform-flow-strip-types", 
     "transform-runtime" <---tried 
    ] 
} 

添加在任何結果transform-runtime以下錯誤:

Error: ENOENT: no such file or directory, open 'C:\Users...\src\babel-runtime\helpers\classCallCheck.js'

不知道爲什麼我得到這個錯誤或者修復它會有所幫助,但是我的猜可能是因爲"source": src/**/*.jsaurelia.json

任何幫助將不勝感激。謝謝!

+1

'Object.values'將成爲ES201 ** 7 **的一部分,它不是ES7(ES2016)的一部分。 –

+0

@FelixKling最初我不清楚你在評論這些內容時是怎麼評論的,但是閱讀並看到了錯誤。感謝您的支持。 – YoYoWC

回答

0

我的解決方案是通過做npm install babel-plugin-transform-es2017-object-entries --save-dev來安裝下面的插件,它可以傳輸object.entries和object.values。

.babelrc文件然後看起來像這樣:

{ 
    "sourceMap": true, 
    "moduleIds": false, 
    "comments": false, 
    "compact": false, 
    "code": true, 
    "presets": ["es2015-loose", "stage-1"], 
    "plugins": [ 
     "syntax-flow", 
     "transform-decorators-legacy", 
     "transform-flow-strip-types", 
     "transform-es2017-object-entries" 
    ] 
} 

另外,根據Babeljs.io(https://babeljs.io/docs/plugins/preset-es2017/),它出現babel-preset-es2017不包括用於object.entries /值的插件/支持。此外,babel-tranform-runtime的目的似乎與我所需要的不同,並不屬於我的解決方案。