Angular-cli: AOT Error --- Can't find app.module

Created on 8 Oct 2016  Â·  25Comments  Â·  Source: angular/angular-cli

OS?

OSX - El Capitan

Versions.

angular-cli: 1.0.0-beta.17
node: 6.7.0

Repro steps.

-- Create a clean app with ng new hello
-- open src/app/index.ts
-- change line 2 from

export * from './app.module';

to

export { AppModule } from './app.module';

-- run ng build --prod --aot

The log given by the failure.

ENOENT: no such file or directory, stat '/Users/dannyblue/Documents/projects/ls-dashboard/src/app/app.module'
Error: ENOENT: no such file or directory, stat '/Users/dannyblue/Documents/projects/ls-dashboard/src/app/app.module'
at Error (native)
at Object.fs.statSync (fs.js:987:18)
at _symbolImportLookup (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/@ngtools/webpack/src/entry_resolver.js:103:28)
at Object.resolveEntryModuleFromMain (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/@ngtools/webpack/src/entry_resolver.js:148:18)
at AotPlugin._setupOptions (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/@ngtools/webpack/src/plugin.js:105:77)
at new AotPlugin (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/@ngtools/webpack/src/plugin.js:34:14)
at Object.exports.getWebpackAotConfigPartial (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/models/webpack-build-typescript.js:57:13)
at new NgCliWebpackConfig (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/models/webpack-config.js:18:42)
at Class.run (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/tasks/build-webpack.js:17:22)
at Class.run (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/commands/build.js:50:26)
at Class. (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/lib/models/command.js:152:17)
at tryCatch (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/rsvp/dist/lib/rsvp/-internal.js:215:12)
at invokeCallback (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/rsvp/dist/lib/rsvp/-internal.js:230:13)
at publish (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/rsvp/dist/lib/rsvp/-internal.js:198:7)
at flush (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/rsvp/dist/lib/rsvp/asap.js:85:5)
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)

Mention any other details that might be useful.

AOT was working fine for me in beta.16
If I change it back to a wild card the app will compile but I have two libs being served from node_modules and while the app will compile I get runtime errors such as:

Return type of public method from exported class has or is using name 'Observable' from external module "/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/rxjs/Observable" but cannot be named.

Which also did not happen with beta.15. I will also point out that importing app module directly will also throw the same error at compile time.

import { AppModule } from './app/app.module';

I am curious if this has something to do with now doing the AOT compilation with a virtual file system.

1 (urgent)

Most helpful comment

index.ts

export * from './app.component';
export * from './app.module';

main.ts

import './polyfills.ts';

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { AppModule } from './app/';

if (environment.production) {
enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule);

this worked. Before I imported the AppModule from /app/app.module and this
is not working at the moment

2016-11-03 14:55 GMT+01:00 Jay Khimani [email protected]:

@elvirdolic https://github.com/elvirdolic what do yo mean by using the
same app.module import logic as it is with a new cli project? Would like
to give it a try.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular-cli/issues/2577#issuecomment-258148716,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQ8j8uELCFrbhj3z_0caMfEcHb2OmIREks5q6eflgaJpZM4KRf0X
.

All 25 comments

@filipesilva update. I also cannot go back to beta.16. If I install beta.16 specifically I now get. I am assuming this has to do with one of the internal packages updated for 17?

webpack_1.NgcWebpackPlugin is not a constructor
TypeError: webpack_1.NgcWebpackPlugin is not a constructor
    at Object.exports.getWebpackAotConfigPartial (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/models/webpack-build-typescript.js:50:13)
    at new NgCliWebpackConfig (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/models/webpack-config.js:18:42)
    at Class.run (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/tasks/build-webpack.js:17:22)
    at Class.run (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/commands/build.js:50:26)
    at Class.<anonymous> (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/angular-cli/lib/models/command.js:152:17)
    at tryCatch (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/rsvp/dist/lib/rsvp/-internal.js:215:12)
    at invokeCallback (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/rsvp/dist/lib/rsvp/-internal.js:230:13)
    at publish (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/rsvp/dist/lib/rsvp/-internal.js:198:7)
    at flush (/Users/dannyblue/Documents/projects/ls-dashboard/node_modules/rsvp/dist/lib/rsvp/asap.js:85:5)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

I am also willing to help test and debug. I looked through the code a bit and found where the error noted in the issue happening but couldn't make any progress from there. The path is correct but node just doesn't seem to think it exists.

@deebloo nuke your local node_modules. Semver must have accepted the newer versions.

@filipesilva already tried nuking and clearing the cache. something must be getting stuck somewhere hmmm. Will try on a different machine.

@deebloo local and global? I noticed that the @ngtools/webpack (the aot plugin) is just pointing at latest, so there might be a version problem in beta.16 now.

@filipesilva yup local and global. what version of @ngtools/webpack should be used by beta.16? (so i could add it to my local for now)

Same happens with ng build as well.

@deebloo should be @ngtools/[email protected] I believe.

@ngtools/[email protected] didn't help :(
Error still appears...

@Gamblt Installing the right version locally wasn't enough; cli keeps it's own version at node_modules/angular-cli/node_modules Deleting that version after installing @ngtools/[email protected] worked for me.

@OnlyByGrace That's it! Works! Thanks a lot!!!

Another way to repro from https://github.com/angular/angular-cli/issues/2734#issuecomment-254088095


If i use index.ts (barel file) it works, if i import main module directly:

import { MainModule } from './main/main.module';
it doesnt.

HOW TO SIMULATE:
1) create new app with ng new
2) change

import { AppModule } from './app'; 

to

import { AppModule } from './app/app.module'; 

in main.ts

modifying the reference to index.ts didn't do the trick for me. I am still getting (same as deebloo):

$ ng build -prod -aot
webpack_1.NgcWebpackPlugin is not a constructor
TypeError: webpack_1.NgcWebpackPlugin is not a constructor
at Object.exports.getWebpackAotConfigPartial (C:\my-projectnode_modules\angular-cli\models\webpack-build-typescript.js:50:13)
at new NgCliWebpackConfig (C:\my-projectnode_modules\angular-cli\models\webpack-config.js:18:42)
at Class.exports.default.Task.extend.run (C:\my-projectnode_modules\angular-cli\tasks\build-webpack.js:17:22)
at Class.Command.extend.run (C:\my-projectnode_modules\angular-cli\commands\build.js:50:26)
at Class. (C:\my-projectnode_modules\angular-cli\lib\models\command.js:152:17)
at tryCatch (C:\my-projectnode_modules\rsvp\dist\lib\rsvp-internal.js:215:12)
at invokeCallback (C:\my-projectnode_modules\rsvp\dist\lib\rsvp-internal.js:230:13)
at C:\my-projectnode_modules\rsvp\dist\lib\rsvp\then.js:29:16
at flush (C:\my-projectnode_modules\rsvp\dist\lib\rsvp\asap.js:85:5)
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)

We have the same issue. No matter how we import the main module

Facing the same problem..!

I have solved this issue by using the same app.module import logic as it is with a new ng cli project

@elvirdolic what do yo mean by using the same app.module import logic as it is with a new cli project? Would like to give it a try.

index.ts

export * from './app.component';
export * from './app.module';

main.ts

import './polyfills.ts';

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { AppModule } from './app/';

if (environment.production) {
enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule);

this worked. Before I imported the AppModule from /app/app.module and this
is not working at the moment

2016-11-03 14:55 GMT+01:00 Jay Khimani [email protected]:

@elvirdolic https://github.com/elvirdolic what do yo mean by using the
same app.module import logic as it is with a new cli project? Would like
to give it a try.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular-cli/issues/2577#issuecomment-258148716,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQ8j8uELCFrbhj3z_0caMfEcHb2OmIREks5q6eflgaJpZM4KRf0X
.

@elvirdolic ah nice. that worked. Thanks.

And now when I am reading the whole thread again, wondering how could I miss comment from @filipesilva which mentioned exact same thing.

I have read the comment and did the same but what I did was following: import { AppModule } from './app/index' and this is also not working

strange!

Hi,
is it working for everyone? I have issues the same as described here.
This is from main.ts:
import { AppModule } from './app/app.module';
This is from index.ts:
export * from './app.component'; export * from './app.module';
And --aot is not working. Tried ng serve --aot and ng serve --prod --aot

Running "version": "1.0.0-beta.19-3"
Thanks.

It seems that it DOES work when I change this line in main.ts:
import { AppModule } from './app';
Is that a good thing to do?

I have other issues but it must be related to be AOT ready, I'm handling it but at least it's not shouting for errors right on the start.

Closing this as deprecated. This should be working now.

main.ts > import { AppModule } from './app/app.module.js';

app.module.ts > import { AppComponent } from './app.component.js';

just add .js

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

_This action has been performed automatically by a bot._

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jmurphzyo picture jmurphzyo  Â·  3Comments

IngvarKofoed picture IngvarKofoed  Â·  3Comments

sysmat picture sysmat  Â·  3Comments

NCC1701M picture NCC1701M  Â·  3Comments

naveedahmed1 picture naveedahmed1  Â·  3Comments