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

使用Webpack 4.8.1打包TypeScript 2.8.1后浏览器报"Void 0 is not function"错误

解决Webpack打包TypeScript后出现"Void 0 is not a function"的错误

这个错误通常是因为TypeScript的模块配置和Webpack的打包机制不兼容导致的,结合你给出的配置文件,我帮你梳理下问题点和修复方案:

核心问题分析

你的tsconfig.json里配置了"module": "system",这是给SystemJS模块加载器用的模块格式,但Webpack本身是独立的模块打包工具,它默认处理CommonJS/ES模块格式,两者的语法逻辑冲突,就会导致浏览器中出现void 0 is not a function这类奇怪的错误。另外,tsconfig.json里的outFile选项也和Webpack的输出逻辑冲突——Webpack会自己处理模块合并和输出,不需要TypeScript来做这件事。

具体修复步骤

1. 修改tsconfig.json配置

把模块格式改成Webpack兼容的类型,同时移除冲突的outFile选项:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs", // 换成commonjs或esnext,Webpack都能很好处理
    "noImplicitAny": false,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true,
    "allowJs": true,
    "moduleResolution": "node"
  },
  "include": [ "./Scripts/*" ],
  "exclude": [ "node_modules", "**/*.spec.ts" ]
}

2. 优化webpack.config.js配置

添加resolve.extensions让Webpack能自动识别.ts文件,避免导入时的路径问题:

var glob = require("glob");
module.exports = { 
  entry: { 
    LiveAgentApplication: "./Scripts/LiveAgent.Application.ts" 
  },
  output: { 
    path: __dirname + '/dist', 
    filename: '[name].bundle.js' 
  },
  module: { 
    rules: [ 
      { 
        test: /\.ts$/, 
        loader: 'ts-loader' 
      } 
    ] 
  },
  resolve: {
    extensions: ['.ts', '.js'] // 告诉Webpack优先解析.ts文件
  },
  optimization: { 
    minimize: false 
  }
};

3. 清理不必要的依赖(可选)

如果你没有用SystemJS来加载打包后的文件,建议移除package.json里的webpack-system-register依赖,这个包是用来把Webpack打包的文件注册到SystemJS中的,不需要的话留着反而可能引发冲突。

验证修复

修改完配置后,重新执行打包命令:

npx webpack --mode development

然后在浏览器中加载新生成的LiveAgentApplication.bundle.js,应该就能解决void 0 is not a function的错误了。

内容的提问来源于stack exchange,提问作者Mohammed Yasin Shaikh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:05:14