Javascript 无法对Ember中的Object.fromEntries进行多边形填充
我有一个简单的余烬应用程序,我需要在组件中填充Javascript 无法对Ember中的Object.fromEntries进行多边形填充,javascript,ember.js,babeljs,babel-polyfill,core-js,Javascript,Ember.js,Babeljs,Babel Polyfill,Core Js,我有一个简单的余烬应用程序,我需要在组件中填充对象。fromEntries 作为参考,我使用Safari 12.1.1本机支持fromEntries,而Safari 11.1.1不支持 好了,我只需要一个合适的ember cli build.jsconfig 如果有人能告诉我为什么以下调整不能正确填充函数,我将不胜感激: const-app=new-app(默认值{ “灰烬之塔”:{ //应该将核心js/stable注入到应用程序中 //@见https://github.com/babel/em
对象。fromEntries
作为参考,我使用Safari 12.1.1本机支持fromEntries
,而Safari 11.1.1不支持
好了,我只需要一个合适的ember cli build.js
config
如果有人能告诉我为什么以下调整不能正确填充函数,我将不胜感激:
const-app=new-app(默认值{
“灰烬之塔”:{
//应该将核心js/stable注入到应用程序中
//@见https://github.com/babel/ember-cli-babel#polyfill
includePolyfill:true,
},
巴别塔:{
//应使用导入替换注入的core js/stable
//config/targets.js本机不支持的
//@见https://babeljs.io/docs/en/babel-preset-env#usebuiltins-入口
使用内置项:“条目”,
//根据babel预设环境文档显式使用corejs v3
corejs:3,
//无论config/targets.js如何,强制包含fromEntries
包括:[
“es.object.from条目”,
],
},
//...
});
我可以看到它就在那里:
软件包版本:
- 余烬-source@3.7.2
- 余烬-cli@3.5.0
- 余烬cli-babel@7.5.0
- @巴别塔/core@7.5.5
- 核心-js@3.2.1
config/targets.js
文件是什么样子的?我想知道polyfill是否不包括在内,因为您的浏览器配置只包括最新版本的Safari,所以Ember和Babel很聪明,没有提供额外的代码
委员会:
仅在生产版本中包含IE11。如果您在本地测试Safari 11,它将不包括在该列表中
尝试将其更改为Safari的最后两个版本
const browsers = [
'last 1 Chrome versions',
'last 1 Firefox versions',
'last 2 Safari versions'
];
看看这是否有帮助。除了IE11在我的列表中,它仍然不能使用
对象.fromEntries
方法之外,我还有同样的问题
所以这里的问题是:
useBuiltIns:“entry”
和useBuiltIns:“usage”
不可能实现。在撰写本文时,这个问题尚未解决李>
@babel/polyfil
弃用通知中说的那样
ember cli.build.js
文件中所有新的babel
内容,您添加了这些内容以尝试使其工作,但保留includePolyfill:true
npm安装corejs——保存dev
直接安装corejs这是我让它工作的唯一方法 在我看来这是正确的。确保您正在停止并重新启动
ember-serve
命令以注册对此特殊文件的更改。你能详细说明你看到的错误吗?只是在safari中不起作用?@jrjohnson是的,每次配置更改后我都会重新启动,在没有缓存的情况下重新加载。然而,当我使用Object.fromEntries
时,无论我的polyfill配置如何,Safari 11都会说“Object.fromEntries不是函数”,Safari 12在使用它的页面上运行良好。当我使用Safari开发工具时,我可以看到v12有一个本机对象。fromEntries
实现,而v11没有定义它。也许我对这些选项如何工作的假设是错误的。我找不到关于这个案例的明确的余烬指南。更清楚的是,我可以看到更改配置的效果,例如,如果我将useBuiltIns
更改为usage
,那么构建无法找到一些核心js
导入(这看起来也很奇怪,但情况不同)如果我添加一个不存在的polyfill作为一个包含
,那么它会抛出一个构建错误,正如您所期望的那样。
const browsers = [
'last 1 Chrome versions',
'last 1 Firefox versions',
'last 2 Safari versions'
];
import "core-js/es/object/from-entries";