Jos*_*eam 7 safari ecmascript-6
我们正在使用webpack和babel-core编写应用程序5.8.25.
在某个时间点,会发生这种情况:
someArray.map(item => {
const updatedItem = Object.assign({}, item); // silently fails here... doesn't even continue the code
updatedItem.prop = 'something cool';
});
Run Code Online (Sandbox Code Playgroud)
这显然是在点击浏览器之前编译的.它适用于最新版本的Chrome和最新版本的iOS Safari,但在Safari中8.0.7,它无声地失败(没有错误抛出......只是没有超过该行).
但是,这可以按预期工作(使用lodash):
someArray.map(item => {
const updatedItem = _.extend({}, item); // the important part
updatedItem.prop = 'something cool';
});
Run Code Online (Sandbox Code Playgroud)
任何的想法?我尝试在互联网上探讨此事,但无济于事.
Object.assign适用于Chrome,因为Chrome本机支持它.babel-loader它本身只将ES6语法转换为ES5语法,它没有做任何事情来使ES6库功能可用.使用Webpack最简单的方法是更改配置
entry: 'app.js'
Run Code Online (Sandbox Code Playgroud)
至
entry: ['babel-core/polyfill', 'app.js']
// Or with Babel 6:
entry: ['babel-polyfill', 'app.js']
Run Code Online (Sandbox Code Playgroud)
这样Webpack也会在执行您的应用程序之前捆绑并运行polyfill.Babel提供/polyfill了一种简单的方法来加载垃圾填埋场,但它是可选的,因为不是每个人都想使用它,并且因为有许多可用的填充物和Babel使用的填充物,core-js只是其中之一.
| 归档时间: |
|
| 查看次数: |
3108 次 |
| 最近记录: |