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

Next.js应用在批量授权版Microsoft Word中无法运行(IE11报错)求助

问题:Next.js应用无法在批量授权版Microsoft Word 2019中运行

Word 2019(Version 1808 Build: 10389.20033)内置IE11内核,运行Next.js应用时抛出以下未定义错误:

Error: 未定義のエラーです。(Undefined error.)
   {
      [functions]: ,
      __proto__: { },
      description: "未定義のエラーです。(Undefined error.)",
      message: "未定義のエラーです。(Undefined error.)",
      name: "Error",
      number: -2147467259,
      stack: "Error: 未定義のエラーです。(Undefined error.)
   at value (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js:1:51576)
   at e (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js:1:46612)
   at a (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js:1:1502)
   at a (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js:1:1347)
   at t.createRouter (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js:1:29243)
   at Anonymous function (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js:1:14052)
   at l (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js:1:71920)
   at Anonymous function (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js:1:71729)
   at Anonymous function (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js:1:72364)
   at k (https://**********/_next/static/chunks/main-ea5363f7b1817a1ef87a.js",
      Symbol()_g.k4lzz4di5i0: undefined,
      Symbol(ASSET_LOAD_ERROR)_15.k4lzz4di55: undefined,
      Symbol(mui.nested)_1d.k4lzz4di55: undefined,
      Symbol(nodejs.util.inspect.custom)_18.k4lzz4di55: undefined,
      Symbol(react.async_mode)_19.k4lzz4di55: undefined,
      Symbol(react.block)_z.k4lzz4di551: undefined,
      Symbol(react.concurrent_mode)_1a.k4lzz4di55: undefined,
      Symbol(react.context)_t.k4lzz4di5i0: undefined,
      Symbol(react.debug_trace_mode)_12.k4lzz4di55: undefined,
      Symbol(react.element)_n.k4lzz4di5i0: undefined,
      Symbol(react.forward_ref)_u.k4lzz4di5i0: undefined,
      Symbol(react.fragment)_p.k4lzz4di5i0: undefined,
      Symbol(react.fundamental)_1b.k4lzz4di55: undefined,
      Symbol(react.lazy)_x.k4lzz4di551: undefined,
      Symbol(react.legacy_hidden)_14.k4lzz4di55: undefined,
      Symbol(react.memo)_w.k4lzz4di551: undefined,
      Symbol(react.offscreen)_13.k4lzz4di55: undefined,
      Symbol(react.opaque.id)_11.k4lzz4di55: undefined,
      Symbol(react.portal)_o.k4lzz4di5i0: undefined,
      Symbol(react.profiler)_r.k4lzz4di5i0: undefined,
      Symbol(react.provider)_s.k4lzz4di5i0: undefined,
      Symbol(react.responder)_1c.k4lzz4di55: undefined,
      Symbol(react.scope)_10.k4lzz4di55: undefined,
      Symbol(react.server.block)_1e.k4lzz4di55: undefined,
      Symbol(react.strict_mode)_q.k4lzz4di5i0: undefined,
      Symbol(react.suspense)_v.k4lzz4di5i0: undefined,
      Symbol(react.suspense_list)_y.k4lzz4di551: undefined,
      Symbol(SSG_DATA_NOT_FOUND)_16.k4lzz4di55: undefined,
      Symbol(x)_17.k4lzz4di55: undefined
   }

即使是通过以下步骤创建的基础Next.js项目,在Word中运行也会报错,但在独立IE11浏览器中正常:

npx create-next-app@latest # app name: test
cd test
npm run build
npm run start

解决方案

1. 配置Next.js兼容IE11内核

在项目根目录的next.config.js中添加以下配置,强制编译输出兼容IE11的代码:

module.exports = {
  // 禁用ES模块输出,改用IE11支持的CommonJS
  experimental: {
    esmExternals: false,
  },
  // 转译Next.js核心包以兼容IE11
  transpilePackages: ['next', 'react', 'react-dom'],
  webpack: (config) => {
    // 添加Babel转译规则,处理现代JS语法
    config.module.rules.push({
      test: /\.js$/,
      exclude: /node_modules\/(?!(next|react|react-dom)\/)/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: [
            ['@babel/preset-env', { targets: { ie: 11 } }],
            '@babel/preset-react'
          ],
          plugins: [
            '@babel/plugin-proposal-class-properties',
            '@babel/plugin-transform-runtime'
          ]
        }
      }
    });
    return config;
  }
};

2. 添加必要的Polyfill

安装核心Polyfill包:

npm install core-js@3 regenerator-runtime

在pages/_app.js的最顶部引入Polyfill:

import 'core-js/stable';
import 'regenerator-runtime/runtime';

function MyApp({ Component, pageProps }) {
  return <Component {...pageProps} />;
}

export default MyApp;

3. 调整Word的IE兼容性设置

  • 打开Word,依次进入「文件」→「选项」→「信任中心」→「信任中心设置」→「受信任的位置」,添加Next.js应用的部署URL为受信任站点;
  • 打开Word的「Internet选项」,切换到「安全」标签,将部署URL添加到「受信任的站点」区域;
  • 在「兼容性视图设置」中,将部署URL加入列表,强制Word使用IE11兼容模式加载页面;
  • 确保「Internet选项」中「安全」→「自定义级别」里的JavaScript已启用,安全级别设为「中等」。

4. 禁用Next.js的现代特性

  • 在pages/_app.js中移除<React.StrictMode>包裹,避免IE11不支持的严格模式特性;
  • 避免使用React Suspense、Lazy Loading等IE11不完全支持的特性,或添加对应的Polyfill处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:57:29