gpt4 book ai didi

javascript - 未捕获的类型错误 : Cannot read property 'call' of undefined after webpack rebuild CommonsChunkPlugin

转载 作者:数据小太阳 更新时间:2023-10-29 03:57:11 26 4
gpt4 key购买 nike

我在尝试请求 html 文件时遇到一个奇怪的错误。有问题的代码是用 typescript 编写并使用 webpack 的 AngularJs 应用程序。

应用程序指令.ts

// require('./app.scss');

// import AppController from './app.controller';

function AppDirective(): ng.IDirective {
return {
restrict: 'E',
scope: {},
controllerAs: 'vm',
// controller: AppController,
controller: () => {},
// template: require('./app.html')
template: '<div>this is a test</div>'
}
}

angular
.module('myApp')
.directive('appDirective', AppDirective);

应用程序 Controller .ts

export default class AppController {

public static $inject = ['$scope'];

constructor(private $scope) {

}
}

应用.html

<div>
THIS IS A TEST, REMAIN CALM
</div>

app.scss 是空的。

现在,按照原样,包含注释,此代码在 webpack 中构建时没有错误,并将使用 webpack 开发服务器进行部署。

在使用 webpack 开发服务器时,它允许您在服务器运行时更​​改代码并实时重新加载它,我可以取消注释任何/所有注释行,它会正常工作。

但是,如果我关闭开发服务器并重建,它会失败并给出此错误:

Uncaught TypeError: Cannot read property 'call' of undefined

Uncaught TypeError: Cannot read property 'call' of undefined__webpack_require__ @ bootstrap 9163605…:50
webpackJsonp.152 @ app.ts:2__webpack_require__ @ bootstrap 9163605…:50
webpackJsonp.153 @ main.browser.ts:1__webpack_require__ @ bootstrap 9163605…:50
webpackJsonp.0 @ main.bundle.js:7__webpack_require__ @ bootstrap 9163605…:50

webpackJsonpCallback @bootstrap 9163605…:21(匿名函数)@main.bundle.js:1

在 webpack:boostrap 文件的这一行失败:

modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

尝试取消注释 app.scss 行、 Controller 行或 app.html 行时会发生此错误。这仅在重建后发生,其中任何或所有行都未注释。

我在 tsconfig 中使用 webpack 进行构建,并使用 commonjs 进行模块加载,并且我在 webpack.config 中为这些类型的文件提供了以下 webpack 加载器:

      {
test: /\.ts$/,
loader: 'awesome-typescript-loader',
exclude: [/\.(spec|e2e)\.ts$/]
},

{
test: /\.scss$/,
loader: 'style-loader!css-loader!sass-loader'
},

{
test: /\.html$/,
loader: 'raw-loader',
exclude: [helpers.root('src/index.html')]
},

我使用 angular js 和 typescript 已经有一段时间了,但这是我第一次开始自己的项目,而且我还在摸索着使用 webpack。

我很困惑为什么如果我在运行时插入这段代码会起作用,但在重建后就停止工作了。我认为这与我的 webpack 配置有关,但我无法弄清楚,我已经坚持了一段时间。任何帮助将不胜感激。

更新我找到了原因,但没有解决方案。这似乎是由我的 webpack 配置中的 CommonsChunkPlugin 引起的:

new webpack.optimize.CommonsChunkPlugin({
name: helpers.reverse(['polyfills', 'vendor', 'main']),
// minChunks: Infinity
}),

如果我删除插件,错误就会消失,但我不再有这个插件。

更新 2

将插件初始化更改为此可以解决问题:

new webpack.optimize.CommonsChunkPlugin({
names: ['polyfills', 'vendor', 'main'],
minChunks: 2
}),

但是我还是不明白为什么

最佳答案

根据 Zze 的建议发布更新 #2 作为答案。

将插件初始化更改为此可以解决问题:

new webpack.optimize.CommonsChunkPlugin({
names: ['polyfills', 'vendor', 'main'],
minChunks: 2
}),

但是我还是不明白为什么

关于javascript - 未捕获的类型错误 : Cannot read property 'call' of undefined after webpack rebuild CommonsChunkPlugin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com