javascript - react 16 : script1002 syntax error on IE11 and below

标签 javascript reactjs internet-explorer webpack

screenshot IE11

在 IE11 及更低版本上查看我的应用时出现此错误。该应用程序还返回一个白页。

更糟糕的是,控制台没有显示行号来指示问题所在/位置。这使得很难找出问题所在。我正在使用 Webpack 4 和 babel-polyfill。

谁能指出我正确的方向?

Webpack 配置

const HtmlWebPackPlugin = require("html-webpack-plugin");
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const CleanWebpackPlugin = require("clean-webpack-plugin");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const webpack = require('webpack');
const extractSass = new ExtractTextPlugin({
filename: "[name].[hash].css",
disable: process.env.NODE_ENV === "development"
});
module.exports = {
// mode: 'production',
entry: [
    'babel-polyfill',
    './src/index.js'
],
output: {
    publicPath: '/',
    filename: '[name].[hash].js',
},
module: {
    rules: [
        {
            test: /\.(js|jsx)$/,
            exclude: /node_modules/,
            use: {
                loader: "babel-loader"
            }
        },
        {
            test: /\.(png|svg|jpg|gif)$/,
            use: [{
                loader: "file-loader",
                options: {
                    // name: "./images/[name].[hash].[ext]",
                    name: '[path][name]-[hash:8].[ext]'
                },

            }
            ],

        },
        {
            test: /\.html$/,
            use: [
                {
                    loader: "html-loader",
                    options: { minimize: true }
                }
            ]
        },
        {
            test: /\.scss$/,
            use: extractSass.extract({
                use: [
                    {
                        loader: "css-loader",
                        options: {
                            minimize: true,
                            // sourceMap: true
                        }
                    },
                    {
                        loader: "sass-loader"
                    }],
                // use style-loader in development
                fallback: "style-loader"
            })
        },
        {
            test: /\.css$/,
            use: extractSass.extract({
                fallback: "style-loader",
                use: "css-loader"
            })
        }

    ]
},
devServer: {
    historyApiFallback: true,
    contentBase: './dist',
    hot: true,
},
plugins: [
    extractSass,
    // new ExtractTextPlugin('[name].[hash].css'),
    new CopyWebpackPlugin([
        {from:'src/assets/img/favicon.png',to:'src/assets/img'}
    ]),
    new HtmlWebPackPlugin({
        template: "./src/index.html",
        filename: "./index.html"
    }),
    new CleanWebpackPlugin(['dist']),
    new webpack.NamedModulesPlugin(),
    new webpack.HotModuleReplacementPlugin(),

],
optimization: {
    splitChunks: {
        cacheGroups: {
            commons: {
                test: /[\\/]node_modules[\\/]/,
                name: 'vendor',
                chunks: 'all'
            }
        }
    }
},

};

最佳答案

我想重申一下Jornve意识到了,因为我也花了一段时间才弄明白这一点。 query-string包在 IE 中不起作用。正如文档中所述,

This module targets Node.js 6 or later and the latest version of Chrome, Firefox, and Safari. If you want support for older browsers, or, if your project is using create-react-app, use version 5: npm install query-string@5.

删除依赖项并编写我自己的函数实现解决了我的问题。我没有尝试使用该软件包的第 5 版,但也许这也能解决问题。

关于javascript - react 16 : script1002 syntax error on IE11 and below,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52382154/

相关文章:

internet-explorer - 旧浏览器 TLS 1.0 和 1.1

asp.net-mvc - React.js 与 asp.net MVC 混合进行验证

linux - 使用安装在 Linux 机器上的 Jenkins 在 IE 驱动程序上运行测试

javascript - 删除后保留 react 动态行输入值

javascript - 单击或悬停时如何创建悬停菜单?

javascript - Redux Saga 错误 : takeLatest$1 requires a pattern or channel

javascript - reactjs axios 获取带有自定义 header 的请求

java - Selenium 网络驱动程序 : IE can't find radio buttons nor checkboxes for using click() on them

javascript - 点击后切换 anchor 的点击功能

javascript - Safari(Mac 和 iOS)不允许名为 "𝝙"的函数。这是否违反规范?