angular-cli: ng build --prod fail with a message "compiler.compileAll is not a function"

Bug Report

When I build with “ng build --prod”, following error come out ERROR in this.compiler.compileAll is not a function

Versions.

@angular/cli: 1.1.0 node: 6.9.2 os: linux x64 @angular/common: 4.2.0-rc.2 @angular/compiler: 4.2.0-rc.2 @angular/core: 4.2.0-rc.2 @angular/forms: 4.2.0-rc.2 @angular/http: 4.2.0-rc.2 @angular/platform-browser: 4.2.0-rc.2 @angular/platform-browser-dynamic: 4.2.0-rc.2 @angular/router: 4.2.0-rc.2 @angular/cli: 1.1.0 @angular/compiler-cli: 4.1.3

Repro steps.

(1) ng new (2) adjust package json (3) ng build --prod error happen the repository is here https://github.com/morninng/issue_angularcli

The log given by the failure.

following error comes out

ERROR in this.compiler.compileAll is not a function

ERROR in ./src/main.ts Module not found: Error: Can’t resolve ‘./$$_gendir/app/app.module.ngfactory’ in ‘/home/morninng/development/Angular2/mixidea_cowork/src’ @ ./src/main.ts 4:0-74 @ multi ./src/main.ts

Desired functionality.

build should be succeeded

Mention any other details that might be useful.

ng build --dev or ng build works successfully

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 16
  • Comments: 32 (6 by maintainers)

Most upvoted comments

Broken by updating to 4.2.2

deleting node_modules does not work for me.

Resolved this error by updating @angular/compiler-cli to 4.2.x. Should work for some.

Just wanted to point out that downgrading is unnecessary. I was running into this issue as well with the aot flag, and have resolved it by:

  • Updating NodeJS from 8.0.0 to 8.1.2
  • Updating NPM from 5.0.3 to 5.0.4
  • rm -rf on node_modules
  • npm cache verify
  • Set package versions: All @angular/* packages are at 4.2.4 @angular/cli is at 1.1.3
  • npm i

Verify that your packages are valid in your directory (do an npm list --depth=0).

I also removed my package-lock.json, since I was starting fresh, but not sure if necessary (as it should update that file with changes to the package.json and running npm i).

Resolved this error by updating @angular/compiler-cli to 4.2.3

Me too 😦

This seemed to be caused by a mismatch between @angular/* packages and is solved by upgrading to 4.2.4+. https://github.com/angular/angular-cli/pull/6817 will also set that minimum for new apps.

For me, the issue was my node version (8.1.2). If you use nvm to control your node environment, try downgrading to 7.x.x (i had 7.4.0 installed). This solved the issue for me.

@andreImp @ColeBeckwith specifing the compiler-cli 4.2.3 resolved it for me. Why did I mention breaking change: I did not need it on 4.1.3, so I consider it to be one

This problem is solved after updating angular-cli 1.1.2 in my environment.

$ ng --version
@angular/cli: 1.1.2
node: 8.1.0
os: darwin x64
@angular/common: 4.2.2
@angular/compiler: 4.2.2
@angular/core: 4.2.2
@angular/forms: 4.2.2
@angular/http: 4.2.2
@angular/platform-browser: 4.2.2
@angular/platform-browser-dynamic: 4.2.2
@angular/router: 4.2.2
@angular/cli: 1.1.2
@angular/compiler-cli: 4.2.2

had to fix @angular/* packages to version 4.1.3 to restore my CI Build