找不到模块:错误:无法解析'./$$_gendir/app/app.module.ngfactory'
就在昨天我的代码工作正常,没有更改应用程序模块,今天使用“ng build --prod“我得到这个错误。我知道这与变化无关,当我拉老分支时,我得到了同样的错误。我不知道该怎么做,建议更新每个软件包,但即使在我仍然得到相同的错误之后。甚至不知道,如果你们能帮助,但这里是我的app.module:
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {HttpModule} from '@angular/http';
import {AppComponent} from './app.component';
import {LoginComponent} from './login/login.component';
import {CompareComponent} from './compare/compare.component';
import {RouterModule} from "@angular/router";
import {CompareCardComponent} from './compare/compare-card/compare-card.component';
import {LayoutComponent} from './layout/layout.component';
import {CompareValuePipe} from "./compare/compare-card/compare-card.pipe";
import {HomeComponent} from './home/home.component';
import {NewLocationComponent} from './new-location/new-location.component';
import {SignupComponent} from './signup/signup.component';
import {ValidateMe} from "./shared/me.suite/validate.me/validate.me";
import {TagsComponent} from './tags/tags.component';
import {GoogleplaceDirective} from './third-party/angular2-google-map-auto-complete/directives/googleplace.directive';
import { LoaderComponent } from './shared/loader/loader.component';
import { AlertComponent } from './shared/alert/alert.component';
import {Angulartics2GoogleAnalytics, Angulartics2Module} from "angulartics2";
import { OverallPipe } from './compare/overall.pipe';
import {InteractiveComponent} from "./question/interactive/interactive.component";
import { FormComponent } from './question/form/form.component';
import { KpiDescComponent } from './compare/kpi-desc/kpi-desc.component';
import {HashLocationStrategy, Location, LocationStrategy} from "@angular/common";
import {AccountApi} from "./services/account-api.service";
import {SettingsApi} from "./services/settings-api.service";
import {DataApi} from "./services/data-api.service";
import { ZeezorInfoComponent } from './zeezor-info/zeezor-info.component';
const ROUTES = [
{path: '', redirectTo: '/home', pathMatch: 'full'},
{path: 'compare', component: CompareComponent},
{path: 'new', component: NewLocationComponent},
{path: 'tags', component: TagsComponent},
{path: 'interactive', component: InteractiveComponent},
{path: 'form', component: FormComponent},
{path: 'login', component: LoginComponent},
{path: 'signup', component: SignupComponent},
{path: 'home', component: HomeComponent},
{path: '**', component: HomeComponent}
];
@NgModule({
declarations: [
LayoutComponent,
AppComponent,
LoginComponent,
CompareComponent,
CompareCardComponent,
CompareValuePipe,
InteractiveComponent,
HomeComponent,
NewLocationComponent,
SignupComponent,
ValidateMe,
TagsComponent,
GoogleplaceDirective,
LoaderComponent,
AlertComponent,
OverallPipe,
FormComponent,
KpiDescComponent,
ZeezorInfoComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(ROUTES),
Angulartics2Module.forRoot([ Angulartics2GoogleAnalytics ])
],
providers: [AccountApi, DataApi, SettingsApi, Location, {provide: LocationStrategy, useClass: HashLocationStrategy}],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(){
let style = document.createElement('link');
style.rel = "stylesheet";
style.href = SettingsApi.styleEndpoint;
window.document.head.appendChild(style);
console.log(navigator.userAgent);
}
}
的package.json
{
"name": "stack-up",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"ng": "ng",
"start": "ng serve",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"compile": "ng build --environment=mobile --output-path ../mobile/www/",
"compile:prod": "ng build --environment=mobile --target=production --output-path ../mobile/www/",
"docker": "ng build --environment=docker",
"local": "ng serve --environment=local",
"dev": "ng build --environment=dev",
"prod": "ng build --environment=prod --target=production --output-path /var/www/html/"
},
"private": true,
"dependencies": {
"@angular/common": "^2.4.0",
"@angular/compiler": "^2.4.0",
"@angular/core": "^2.4.0",
"@angular/forms": "^2.4.0",
"@angular/http": "^2.4.0",
"@angular/platform-browser": "^2.4.0",
"@angular/platform-browser-dynamic": "^2.4.0",
"@angular/router": "^3.4.0",
"angular2-jwt": "^0.2.2",
"angular2-social-login": "^2.1.0",
"angulartics2": "^2.2.1",
"core-js": "^2.4.1",
"rxjs": "^5.0.1",
"ts-helpers": "^1.1.1",
"tslint": "^3.15.1",
"zone.js": "^0.7.2"
},
"devDependencies": {
"@angular/cli": "1.0.0-beta.31",
"@angular/compiler-cli": "^2.4.0",
"@types/jasmine": "2.5.38",
"@types/node": "^6.0.42",
"codelyzer": "~2.0.0-beta.1",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-coverage-istanbul-reporter": "^0.2.0",
"protractor": "~5.1.0",
"ts-node": "1.2.1",
"tslint": "^4.3.0",
"typescript": "~2.0.0"
}
}
我昨天(同样的错误消息)也有类似的问题,我固定它基于这个角CLI问题:
https://github.com/angular/angular-cli/issues/7125
此修复程序是针enhanced-resolve
到3.3.0
版本在我的package.json,删除node_模块,运行npm install
,然后重新构建。这似乎已经解决了问题线程中的一些人的问题。
增强型解决方案的较新版本似乎导致一些问题。
如果它仍然中断,请确保通过运行npm ls enhanced-resolve
确保您具有正确的增强型解析版。
对于其他任何人来说,与angular-cli
和angular
的旧版本有一个descrepency。 Source。
要解决此问题,请将angular-cli
升级到@latest
。
npm uninstall -g angular-cli npm cache clean npm install -g @angular/[email protected]
Depending on your system, you may need to prefix the above commands with sudo.
Also, most likely you want to also update your local project version, because inside your project directory it will be selected with higher priority than the global one:
rm -rf node_modules npm uninstall --save-dev angular-cli npm install --save-dev @angular/[email protected] npm install
如果您不想使用@latest angular-cli,请至少将@ angular-cli更新为v1.2.6。目前它已经解决了问题,而且您不需要安装增强型解决方案等。 https://github.com/angular/angular-cli/issues/7113
Cha-Ching!谢谢你,我看到了这个线程,试过了,但没有得到特定的版本,或者卸载了node_modules。干杯! –
'pin'是用来代替包中的'add'的术语吗? – Zze
'pin'表示设置特定版本。对于package.json来说,这意味着从版本字符串中删除任何波浪号(〜)或脱字号(^)字符。在这种情况下,“enhanced-resolve”:“3.3.0”被添加到package.json中,以便使用特定的版本。 –