You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React项目在IE11中出现SCRIPT1014无效字符错误求助

针对IE11中React项目SCRIPT1014错误的排查与解决

我在IE11中打开React项目时,出现“SCRIPT1014 Invalid Character”错误,但其他浏览器(包括Edge)均能正常运行。我已尝试使用core.js、babel-polyfills、babel-plugin-transform-class-properties等方案,但问题仍未解决。以下是我的webpack.config.js文件内容:

// webpack v4 
const path = require('path'); 
const HtmlWebpackPlugin = require('html-webpack-plugin'); 
const ExtractTextPlugin = require('extract-text-webpack-plugin'); 

module.exports = { 
  entry: './src/index.js', 
  output: { 
    path: path.resolve(__dirname, '/dist'), 
    filename: 'index_bundle.js', 
    publicPath: '/', 
  }, 
  module: { 
    rules: [ 
      { 
        test: /\.js$/, 
        exclude: /node_modules/, 
        use: { 
          loader: 'babel-loader', 
        }, 
      }, 
      { 
        test: /\.styl$/, 
        exclude: /node_modules/, 
        use: ExtractTextPlugin.extract({ 
          fallback: 'style-loader', 
          use: ['css-loader', 'postcss-loader', 'stylus-loader'], 
        }), 
      }, 
      { 
        test: /\.(png|jp(e*)g|svg|woff|woff2|eot|ttf|otf)$/, 
        use: [{ 
          loader: 'url-loader', 
          options: { 
            limit: 8000, // Convert images < 8kb to base64 strings 
            name: 'images/[hash]-[name].[ext]', 
          }, 
        }], 
      }, 
    ], 
  }, 
  devServer: { 
    port: 8881, 
    host: '0.0.0.0', 
    historyApiFallback: true, 
  }, 
  watch: true, 
  plugins: [ 
    new HtmlWebpackPlugin({ 
      template: './src/index.html', 
    }), 
    new ExtractTextPlugin( { filename: 'app.bundle.css' }, ), 
  ], 
}; 

我还尝试了Stack Overflow上相关问题的解决方案,但均无效,恳请各位提供帮助,谢谢。

问题分析

IE11对ES6+语法的支持极差,SCRIPT1014 Invalid Character通常是因为代码里出现了IE11无法识别的语法(比如箭头函数、类属性、对象扩展运算符,或者Babel没转译到位的第三方依赖代码)。你提到已经用了polyfill,但大概率是转译范围没覆盖全或者Babel配置不全导致的。

具体解决步骤

1. 完善Babel配置文件

首先在项目根目录创建或修改.babelrc文件(也可以在package.json的babel字段配置),明确对IE11的支持:

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "ie": "11"
        },
        "useBuiltIns": "usage",
        "corejs": 3
      }
    ],
    "@babel/preset-react"
  ],
  "plugins": [
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-object-rest-spread"
  ]
}
  • @babel/preset-env会根据目标浏览器自动转译所需语法,useBuiltIns: "usage"会自动按需引入core-js的polyfill,不用手动在入口文件导入。
  • 别忘了安装依赖:npm install @babel/core @babel/preset-env @babel/preset-react @babel/plugin-proposal-class-properties @babel/plugin-proposal-object-rest-spread core-js@3 --save-dev

2. 调整Webpack的转译范围

你的Webpack把node_modules全部排除在转译之外了,但有些第三方依赖可能也用了IE11不支持的语法(比如部分React组件库),可以针对性转译这些依赖:

module: {
  rules: [
    {
      test: /\.js$/,
      // 只排除不需要转译的依赖,把需要转译的包名加在括号里
      exclude: /node_modules\/(?!(axios|react-router-dom)\/).*/,
      use: {
        loader: 'babel-loader',
      },
    },
    // 其他规则保持不变
  ]
}

3. 确保HTML文件的兼容性声明

IE11可能会进入兼容模式导致解析异常,检查你的index.html是否有正确的声明:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Your React App</title>
</head>
<!-- 其他内容 -->
</html>

X-UA-Compatible设置为IE=edge会强制IE使用最新的渲染模式。

4. 替换ExtractTextPlugin(Webpack v4适配)

ExtractTextPlugin在Webpack v4中对IE11的兼容性不佳,推荐换成mini-css-extract-plugin:

// 先安装依赖:npm install mini-css-extract-plugin --save-dev
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

// 替换styl文件的处理规则
{
  test: /\.styl$/,
  exclude: /node_modules/,
  use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'stylus-loader'],
}

// 替换plugins中的ExtractTextPlugin
plugins: [
  new HtmlWebpackPlugin({ template: './src/index.html' }),
  new MiniCssExtractPlugin({ filename: 'app.bundle.css' })
]

5. 排查代码中的特殊字符

偶尔模板字符串里的特殊符号、全角字符也会触发这个错误,检查你的JS/JSX文件:

  • 箭头函数() => {}是否被正常转译
  • 类的公共字段(比如class Foo { bar = 1 })是否有插件处理
  • 对象扩展运算符{ ...obj }是否被转译

验证步骤

做完调整后执行npm run build,把dist目录的文件放到本地服务器,用IE11打开dist/index.html测试。如果还有错误,打开IE11开发者工具定位到错误行,看看具体是哪个语法导致的,再针对性处理。


内容的提问来源于stack exchange,提问作者Hitesh Chaudhari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:16:56