- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
总结:我正在尝试将 Angular2 AoT 用于我的 Angular2 应用程序,但由于我有静态提供程序将一些值从服务器传递到 Angular2,ngc
显示了一些错误.我的问题是如何获取使用 ngc
创建的 ngFactory
文件。
详细信息:我正在使用 cookbook guide ,然后运行 "node_modules/.bin/ngc"-p tsconfig-aot.json
显示以下错误:
Error: Cannot determine the module for component AppComponent!
at F:\workspace\node\my-project\node_modules\@angular\compiler\bundles\compiler.umd.js:12839:25
at Array.map (native)
at OfflineCompiler.compile (F:\workspace\node\my-project\node_modules\@angular\compiler\bundles\compiler.umd.js:12835:31)
at F:\workspace\node\my-project\node_modules\@angular\compiler-cli\src\codegen.js:108:18
at Array.map (native)
at CodeGenerator.codegen (F:\workspace\node\my-project\node_modules\@angular\compiler-cli\src\codegen.js:106:38)
at codegen (F:\workspace\node\my-project\node_modules\@angular\compiler-cli\src\main.js:7:81)
at Object.main (F:\workspace\node\my-project\node_modules\@angular\tsc-wrapped\src\main.js:30:16)
at Object.<anonymous> (F:\workspace\node\my-project\node_modules\@angular\compiler-cli\src\main.js:14:9)
at Module._compile (module.js:541:32)
Compilation failed
tsconfig-aot.json:
{
"compilerOptions": {
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
"typings"
],
"angularCompilerOptions": {
"genDir": "aot",
"skipMetadataEmit" : true
}
}
包.json:
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"postinstall": "typings install"
},
"license": "ISC",
"dependencies": {
"@angular/common": "~2.0.1",
"@angular/compiler": "~2.0.1",
"@angular/compiler-cli": "^0.6.0",
"@angular/core": "~2.0.1",
"@angular/forms": "~2.0.1",
"@angular/http": "~2.0.1",
"@angular/platform-browser": "~2.0.1",
"@angular/platform-browser-dynamic": "~2.0.1",
"@angular/platform-server": "^2.2.1",
"@angular/router": "~3.0.1",
"@angular/upgrade": "~2.0.1",
"body-parser": "^1.15.2",
"cookie-parser": "^1.4.3",
"core-js": "^2.4.1",
"crypto": "0.0.3",
"express": "^4.14.0",
"express-mysql-session": "^1.2.0",
"express-session": "^1.14.1",
"hammerjs": "^2.0.8",
"reflect-metadata": "^0.1.8",
"rxjs": "5.0.0-beta.12",
"systemjs": "0.19.39",
"zone.js": "^0.6.25",
// Other dependancies
},
"devDependencies": {
"concurrently": "^3.0.0",
"typescript": "^2.0.3",
"typings": "^1.4.0"
}
}
索引.哈巴狗:
html
head
base(href=config.baseUrl)
title My title
meta(charset='UTF-8')
meta(name='viewport', content='width=device-width, initial-scale=1')
link(rel='stylesheet', href="node_modules/ng2-toastr/bundles/ng2-toastr.min.css")
link(rel='stylesheet', href='node_modules/ng2-material/ng2-material.css')
link(rel='stylesheet', href='public/styles/index.css')
script(src='node_modules/core-js/client/shim.min.js')
script(src='node_modules/zone.js/dist/zone.js')
script(src='node_modules/reflect-metadata/Reflect.js')
script(src='node_modules/systemjs/dist/system.src.js')
script(src='systemjs.config.js')
script
| System.import('app')
| .then(module => module.main(!{JSON.stringify(config)}), console.error.bind(console) );
body
tt-app My application, loading waiter application ...
main.ts:
/// <reference path="../../typings/index.d.ts" />
import {platformBrowserDynamic} from "@angular/platform-browser-dynamic";
import {createMainModule} from "./app.module";
export const main = (SERVER_CONFIG) => {
platformBrowserDynamic().bootstrapModule(createMainModule(SERVER_CONFIG));
};
应用程序模块.ts:
import {NgModule} from "@angular/core";
import {BrowserModule} from "@angular/platform-browser";
import {AppComponent} from "./app/app.component";
import {routing} from "./app.routing";
import {HttpModule} from "@angular/http";
import {AuthService} from "./auth.service";
import {ConfigService} from "./config.service";
import {CustomersModule} from "./customers/customers.module";
export const createMainModule = (SERVER_CONFIG) => {
@NgModule({
imports: [
BrowserModule,
routing,
HttpModule,
],
declarations: [AppComponent],
providers: [
AuthService,
{
provide: "SERVER_CONFIG",
useValue: SERVER_CONFIG
},
ConfigService
],
bootstrap: [AppComponent]
})
class AppModule {
}
return AppModule;
};
应用程序组件.ts:
import {Component, OnInit} from "@angular/core";
import {ConfigService} from "../config.service";
import {AuthService} from "../auth.service";
import {Router} from "@angular/router";
@Component({
selector: 'tt-app',
templateUrl: 'partials/app/app.component'
})
export class AppComponent implements OnInit {
user;
constructor(private _configServer: ConfigService,
private _authService: AuthService,
private _router: Router) {
}
ngOnInit(): void {
this.user = this._configServer.server.user;
}
logout() {
this._authService
.logout()
.then((result)=> {
})
.catch((error)=> {
this._router.navigate(['/login']);
});
}
}
更新 1: 如评论中所述,我验证了如果我删除了用于将数据从服务器传递到 Angular2 的静态提供程序的代码,即 createMainModule()
在 app.module.ts 中,等等,然后 ngc
工作正常。
更新 2:我使用 SystemJS 作为模块加载器。
最佳答案
将 AppComponent
添加到 bootstrap
而不是 AuthComponent
并将 AppComponent
添加到 declarations
还有:
@NgModule({
imports: [
BrowserModule,
SharedModule,
authRouting,
LoginModule
],
providers: [
AuthService,
{
provide: "SERVER_CONFIG",
useValue: SERVER_CONFIG
},
ConfigService
],
declarations: [AppComponent, AuthComponent],
bootstrap: [AppComponent]
})
class AuthModule {
}
关于Angular2,AoT编译: Cannot determine the module for component AppComponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40724815/
我在AppComponent中加载数据 然后在people.component中引用这些数据 但是 people.component 首先加载。 应用组件 ngOnInit() { pr
免责声明:是的,我看到有更多“为组件 AppComponent 指定的模板不是字符串”相关问题,但没有一个描述我遇到的具体问题。 当我在 ng build 中不使用 AoT 进行编译时出现此运行时错误
我有一个 Angular 6 应用程序。起初它只是一个页面(比如说“搜索页面”),所以我将页面内容放入 app.component.html 和相关函数等到app.component.ts。所以搜索页
我正在尝试制作一个简单的单组件应用程序来测试 Angular2,但我非常坚持访问我的应用程序组件中的 RouteParams。 这是我目前所拥有的: @Component({ selector:
@NgModule({ declarations: [ AppComponent , DesktopComponent ], imports: [ BrowserM
我正在 build 一个大项目,这是其中的一部分。我的问题很常见,但是我没有找到解决它的方法。真的需要你的帮助!我收到类型错误。我很乐意提供任何帮助 Uncaught Error: Can't res
嘿,我是 Angular 和 Web 开发的新手,我学习了一些教程。 当尝试合并使用我的 Firebase 数据库时,在本地编译(使用 ng serve)时我的应用程序失败了。返回:“AppCompo
下面是我的表格。在 ngserve -o 期间工作正常。没有提出任何问题。没有出现任何错误。 Your Mobile Money Account Name
我试图从 json 响应中获取 results 字段,但是我收到错误 Property 'results' does not exist on type 'AppComponent import {
我有一个简单的应用程序,它通过 Appcomponent 加载 Material 设计 Ui。我需要在加载应用程序组件之前对用户进行身份验证。 应用组件如下 import {Component} fr
我在 Typescript Monorepo 中操作。我想向 Monorepo 添加一个带有 Jest 测试的 Angular 8 前端。但是我遇到了一些问题。 我正在使用 Angular CLI:
我正在尝试使用 Angular 6 构建应用程序,但我仍在设置所有内容。但是我的应用程序中的依赖注入(inject)似乎有问题。 它无法解析任何构造函数参数。它们都会导致 Uncaught Error
我正在以 angular 编写 spec.ts 文件并收到以下错误: Failed: Illegal state: Could not load the summary for directive A
我使用 Angular 5.2.0,我导航到: /page/28/1 对应于: {path: 'page/:albumId/:pageNo', component: AlbumPageComponen
我收到此错误并搜索了解决方案,但似乎一切都应该正确设置。 完整的错误是:“不变违规:无法在“Connect(AppComponent)”的上下文中找到“store”。要么将根组件包装在 a 中,要么将
在 AppComponent 的构造函数中,我们有一个函数可以加载一些变量并将它们设置在 environment.ts 文件中。但是我们的测试失败了,因为它使用了这些变量并单独运行并且它没有加载设置它
您好,可以在我的 AppComponent 中添加测试模块吗? 下面是我对 appComponent 的真实表示 @Singleton @Component(modules = arrayOf(Mai
在构造函数中添加表单生成器时。我一直收到错误。我已经在 app.module 中添加了 ReactiveFormsModule。 import { Component } from '@angular
在使用 CLI 生成 Angular 项目时,根组件 - AppComponent 没有 ngOnInit block ,但生成的每个其他组件都有一个 ngOnInit block 。在根组件中有一个
总结:我正在尝试将 Angular2 AoT 用于我的 Angular2 应用程序,但由于我有静态提供程序将一些值从服务器传递到 Angular2,ngc 显示了一些错误.我的问题是如何获取使用 ng
我是一名优秀的程序员,十分优秀!