gpt4 book ai didi

javascript - 无法在 Ember 中填充 Object.fromEntries

转载 作者:行者123 更新时间:2023-11-28 03:38:24 30 4
gpt4 key购买 nike

我有一个简单的 Ember 应用程序,我需要在组件中填充 Object.fromEntries

作为引用,我使用原生支持 fromEntries 的 Safari 12.1.1,而 Safari 11.1.1 则不支持。

据我所知,我需要的只是一个正确的 ember-cli-build.js 配置。

如果有人能告诉我为什么以下调整不能正确填充函数,我将不胜感激:

const app = new EmberApp(defaults, {

'ember-cli-babel': {
// supposedly should inject core-js/stable into app
// @see https://github.com/babel/ember-cli-babel#polyfill
includePolyfill: true,
},

babel: {
// should replace injected core-js/stable with imports
// that are not natively supported by config/targets.js
// @see https://babeljs.io/docs/en/babel-preset-env#usebuiltins-entry
useBuiltIns: 'entry',

// explicitly use corejs v3 per babel-preset-env docs
corejs: 3,

// force inclusion of fromEntries regardless of config/targets.js
include: [
'es.object.from-entries',
],
},

//...
});

我可以看到它在那里:https://github.com/babel/babel/blob/v7.5.5/packages/babel-preset-env/src/polyfills/corejs3/built-in-definitions.js#L265

<小时/>

软件包版本:

  • ember-source@3.7.2
  • ember-cli@3.5.0
  • ember-cli-babel@7.5.0
  • @babel/core@7.5.5
  • core-js@3.2.1

最佳答案

您的 config/targets.js 文件是什么样的?我想知道是否不包含 polyfill,因为您的浏览器配置仅包含最新版本的 Safari,因此 Ember 和 Babel 很聪明,没有提供额外的代码。

default for new apps :

'use strict';

const browsers = [
'last 1 Chrome versions',
'last 1 Firefox versions',
'last 1 Safari versions'
];

const isCI = !!process.env.CI;
const isProduction = process.env.EMBER_ENV === 'production';

if (isCI || isProduction) {
browsers.push('ie 11');
}

module.exports = {
browsers
};

仅在生产版本中包含 IE11。如果您在本地测试 Safari 11,它将不会包含在该列表中。

尝试将其更改为最新 2 个 Safari 版本。

const browsers = [
'last 1 Chrome versions',
'last 1 Firefox versions',
'last 2 Safari versions'
];

看看这是否有帮助。

关于javascript - 无法在 Ember 中填充 Object.fromEntries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57496743/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com