Skip to content

ng build --aot fails #4043

Closed
Closed

Description

@rolandjitsu

Please provide us with the following information:

OS?

Windows 7, 8 or 10. Linux (which distribution). Mac OSX (Yosemite? El Capitan?)

OS X El Capitan

Versions.

Please run ng --version. If there's nothing outputted, please run in a Terminal: node --version and paste the result here:

angular-cli: 1.0.0-beta.25.5
node: 6.7.0
os: darwin x64
@angular/common: 2.4.3
@angular/compiler: 2.4.3
@angular/core: 2.4.3
@angular/forms: 2.4.3
@angular/http: 2.4.3
@angular/platform-browser: 2.4.3
@angular/platform-browser-dynamic: 2.4.3
@angular/router: 3.4.3
@angular/material: 2.0.0-beta.1

Repro steps.

Was this an app that wasn't created using the CLI? What change did you do on your code? etc.

If I run ng build --aot it throws an error after it logs the bundles that were created.

The log given by the failure.

Normally this include a stack trace and some more information.

Hash: f623b656056e9a59a302                                                               
Time: 14288ms
chunk    {0} scripts.b070e2134bb20fc4e5f5.bundle.js (scripts) 730 kB {4} [initial] [rendered]
chunk    {1} styles.fe1bc11c112063cca818.bundle.css (styles) 21.9 kB {4} [initial] [rendered]
chunk    {2} main.3269aa95e662115bc916.bundle.js (main) 1.97 kB {3} [initial] [rendered]
chunk    {3} vendor.9340472a0450b55ed1fe.bundle.js (vendor) 1.08 MB [initial] [rendered]
chunk    {4} inline.a6aa1cbd561bcc42ae6c.bundle.js (inline) 0 bytes [entry] [rendered]

ERROR in providers.forEach is not a function

ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in '/Users/rolandjitsu/Projects/infarm/dashboard/src'
 @ ./src/main.ts 4:0-74
 @ multi main

ERROR in ./~/@angular/core/src/linker/system_js_ng_module_factory_loader.js
Module not found: Error: Can't resolve '/Users/rolandjitsu/Projects/infarm/dashboard/src/$$_gendir' in '/Users/rolandjitsu/Projects/infarm/dashboard/node_modules/@angular/core/src/linker'
 @ ./~/@angular/core/src/linker/system_js_ng_module_factory_loader.js 69:15-36 85:15-102
 @ ./~/@angular/core/src/linker.js
 @ ./~/@angular/core/src/core.js
 @ ./~/@angular/core/index.js
 @ ./src/main.ts
 @ multi main

Mention any other details that might be useful.


Thanks! We'll be in touch soon.

Activity

  1. filipesilva commented on Jan 16, 2017

    @filipesilva
    Contributor

    It looks like the real error is ERROR in providers.forEach is not a function when then breaks the AoT'd app.module. Can you show me the code of ./src/app/app.module.ts?

  2. rolandjitsu commented on Jan 16, 2017

    @rolandjitsu
    Author

    Yes I can:

    import {NgModule} from '@angular/core';
    import {BrowserModule} from '@angular/platform-browser';
    
    /**
     * Feature Modules
     */
    import {CoreModule, PreloadSelectedModulesOnly} from './core';
    import {SharedModule} from './shared/shared.module';
    
    /**
     * Components
     */
    import {AppComponent} from './app.component';
    import {LayoutComponent} from './layout/layout.component';
    import {HomeComponent} from './home/home.component';
    import {NotificationsComponent} from './notifications/notifications.component';
    import {RecipesComponent} from './recipes/recipes.component';
    import {AccountComponent} from './account/account.component';
    import {SettingsComponent} from './settings/settings.component';
    import {ErrorComponent} from './error/error.component';
    
    /**
     * Routing
     */
    import {routing} from './app.routing';
    
    
    @NgModule({
    	imports: [
    		BrowserModule,
    		// Routing
    		routing,
    		// Features/Shared
    		SharedModule.forRoot(),
    		CoreModule.forRoot()
    	],
    	providers: [PreloadSelectedModulesOnly],
    	declarations: [
    		AppComponent,
    		LayoutComponent,
    		HomeComponent,
    		NotificationsComponent,
    		RecipesComponent,
    		AccountComponent,
    		SettingsComponent,
    		ErrorComponent
    	],
    	// A list of components that can be bootstrapped.
    	// Usually there is only one component in this list,
    	// the root component of the application.
    	bootstrap: [
    		AppComponent
    	]
    })
    export class AppModule {}
  3. Shinzah commented on Jan 16, 2017

    @Shinzah

    Could you show your angular-cli.json ?
    is app.assets an array ?

  4. rolandjitsu commented on Jan 16, 2017

    @rolandjitsu
    Author

    @Shinzah It is an array, yes. But I cannot see how that would have any impact on AOT.

    I do know that I get an error if I add a folder or file that does not exist in the {apps: [{assets: []}]}, but as I said previously, it's a completely different error.

  5. Splaktar commented on Jan 18, 2017

    @Splaktar
    Contributor

    I get the same thing but without the ERROR in providers.forEach is not a function and no other message in its place.

  6. rolandjitsu commented on Feb 28, 2017

    @rolandjitsu
    Author

    I found the issue. It seems like AOT does not like:

    const providers = [];
    
    if (someCondition) {
        providers.push({ ...some object });
    }
    
    @NgModule({
        providers
    })
    export class TestModule {}

    But it works with:

    const providers = [];
    
    if (someCondition) {
        providers.push({ ...some object });
    }
    
    @NgModule({
        providers: [
            ...providers
        ]
    })
    export class TestModule {}
  7. angular-automatic-lock-bot commented on Sep 21, 2019

    @angular-automatic-lock-bot

    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.

  8. locked and limited conversation to collaborators on Sep 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions