类型错误:angularCompiler.getNextProgram 不是函数

时间:2021-05-05 17:31:55

标签: angular typescript angular11 angular-ivy

我在我的机器上使用 angular 11.2,我想运行一个 angular 12 项目。从 git 克隆后,我运行了以下命令。

  1. npm install
  2. ng serve

但是我遇到以下错误并且无法运行该项目。 我阅读了 this question,但它对我不起作用。

Error: ./src/main.ts
Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
TypeError: angularCompiler.getNextProgram is not a function
    at C:\Users\thimira_p\Desktop\itrd\epic-itrda-web\node_modules\@ngtools\webpack\src\ivy\plugin.js:376:100
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

Error: ./src/polyfills.ts
Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
TypeError: angularCompiler.getNextProgram is not a function
    at C:\Users\thimira_p\Desktop\itrd\epic-itrda-web\node_modules\@ngtools\webpack\src\ivy\plugin.js:376:100
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

Error: (webpack)-dev-server/client?http://0.0.0.0:0&sockPath=/sockjs-node
Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
TypeError: angularCompiler.getNextProgram is not a function
    at C:\Users\thimira_p\Desktop\itrd\epic-itrda-web\node_modules\@ngtools\webpack\src\ivy\plugin.js:376:100
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

如何解决这个问题?

4 个答案:

答案 0 :(得分:10)

@angular-devkit/build-angular@0.1100升级到@angular-devkit/build-angular@12

答案 1 :(得分:6)

尝试删除

<块引用>

"aot": 真

来自 angular.json

答案 2 :(得分:5)

我在使用 custom webpack.config 的 Angular 应用程序中遇到了同样的问题 - 将 @angular-builders/custom-webpack 作为依赖项。

Angular 和 @angular-builders 主要版本应该匹配。

通过将 @angular-builders/custom-webpack 更新到最新版本解决:

npm install @angular-builders/custom-webpack@12.0.0


如果在安装后出现如下错误: An unhandled exception occurred: Cannot find module 'webpack',尝试删除 package-lock.jsonnode_modules 并进行全新安装。


Github 问题:https://github.com/just-jeb/angular-builders/issues/981

答案 3 :(得分:0)

我仍然在@angular/core@12.0.3 上看到这个错误

简单的解决方案是将@angular-devkit/build-angular@0.xxx 升级为@angular-devkit/build-angular@12.0.3。

重点是在package.json中用@angular-devkit/build-angular@whatever_version_of_angular_you_have_installed 替换@angular-devkit/build-angular@0.xxx。 之后删除“node_modules”文件夹并执行“npm install