首页 > 解决方案 > 对象不支持“for”属性或方法

问题描述

我在我的一个项目中使用 Next JS,但在 Internet Explorer 11 中遇到错误:

对象不支持“for”属性或方法

该错误似乎源于commonsorwebpack文件,请参阅下面的堆栈,其中站点为空白:

在此处输入图像描述

在查看文件以了解可能使用该.for方法的内容后,它似乎适用于捆绑代码中使用的一些符号。

我尝试core-js在我的 webpack 配置中导入 polyfil,如下所示:

import 'core-js/features/symbol';

但这会引发以下错误:

未捕获错误类型错误:预期对象

我尝试了另一种方法 - 包括我的应用程序中的 polyfil <head>

<script src='https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.23.0/polyfill.min.js' />

当我再次尝试在 ie 中运行它时收到以下错误:

未捕获错误 SecurityError

我在上面尝试的两种方法(使用 core-js 导入并包括 babel-polyfil 库)似乎都为Symbol.fordom 提供了一种方法。IE 如果我Symbol.for在添加任何一个 polyfil 之前输入,我会得到未定义,并且在它返回我一个函数之后,所以我不太确定它为什么仍然失败。

最后,如果它有任何帮助,这是我的下一个配置,但我认为这不是导致它的原因:

require('dotenv').config()
const webpack = require('webpack')
const withSass = require('@zeit/next-sass');
const withFonts = require('next-fonts');

module.exports =
    withFonts(withSass({
        webpack: (config, {
            dev
        }) => {

            // Fixes npm packages that depend on `fs` module
            config.node = {
                fs: 'empty'
            }
            config.plugins.push(new webpack.EnvironmentPlugin(process.env))

            if (dev) {
                config.devtool = 'cheap-module-source-map';
            }

            config.module.rules.push({
                test: /\.(png|svg)$/,
                use: {
                    loader: 'url-loader',
                    options: {
                        limit: 100000,
                        publicPath: './',
                        outputPath: 'static/',
                        name: '[name].[ext]'
                    }
                }
            })

            const originalEntry = config.entry
            config.entry = async () => {
                const entries = await originalEntry()

                if (
                    entries['main.js'] &&
                    !entries['main.js'].includes('./client/polyfills.js')
                ) {
                    entries['main.js'].unshift('./client/polyfills.js')
                }

                return entries
            }

            return config

        }
    }))

标签: javascriptreactjsinternet-explorerwebpacknext.js

解决方案


推荐阅读