我是Angular 2的新手,我试图跟随我找到的视频教程.尽管遵循了所有的步骤,Angular还是不起作用;我得到以下错误:

compiler.umd.js:13854 Uncaught Error: No NgModule metadata found for 'App'.

组件根本不加载.

以下是我的文件:

包裹json:

{
  "name": "retain",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "webpack --config webpack.spec.ts --progress --color && karma start",
    "start": "webpack-dev-server --inline --colors --progress --display-error-details --display-cached --port 3000  --content-base src"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0",
    "@angular/compiler": "2.0.0",
    "@angular/core": "2.0.0",
    "@angular/forms": "2.0.0",
    "@angular/http": "2.0.0",
    "@angular/platform-browser": "2.0.0",
    "@angular/platform-browser-dynamic": "2.0.0",
    "@angular/router": "3.0.0",
    "core-js": "2.4.1",
    "lodash": "4.16.1",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.25"
  },
  "devDependencies": {
    "@types/core-js": "0.9.33",
    "@types/lodash": "4.14.35",
    "@types/node": "6.0.39",
    "awesome-typescript-loader": "2.2.4",
    "css-loader": "0.23.1",
    "jasmine-core": "2.4.1",
    "karma": "1.1.1",
    "karma-chrome-launcher": "1.0.1",
    "karma-jasmine": "1.0.2",
    "karma-mocha-reporter": "2.0.4",
    "raw-loader": "0.5.1",
    "to-string-loader": "1.1.4",
    "ts-helpers": "1.1.1",
    "typescript": "2.0.2",
    "webpack": "1.13.1",
    "webpack-dev-server": "1.14.1"
  }
}

指数html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset=UTF-8>
    <title>Retain</title>
    <link rel="icon" href="data:;base64,iVBORw0KGgo=">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href='https://cdnjs.cloudflare.com/ajax/libs/normalize/4.1.1/normalize.min.css' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/flexboxgrid/6.3.0/flexboxgrid.min.css" type="text/css">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
      rel="stylesheet">
    <link href="global.css" rel="stylesheet">
    <base href="/">
  </head>
  <body>

    <app>
      ... before angular loads.
    </app>

    <script src="polyfills.bundle.js"></script>
    <script src="vendor.bundle.js"></script>
    <script src="main.bundle.js"></script>

  </body>
</html>

主要的ts:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module'; 

import { App } from './app/app';

const platform = platformBrowserDynamic();
platform.bootstrapModule(App);

platformBrowserDynamic().bootstrapModule(AppModule);

应用程序.ts:

import { Component } from '@angular/core';
import { NgModule }      from '@angular/core';

@Component({
  selector: 'app',
  template: `
    <div>
      <h3>
        Yo, world!
      </h3>
    </div>
    `
})

export class App {}

应用程序.单元ts:

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { App } from './app'; 

@NgModule({ 
  imports: [BrowserModule], 
  declarations: [App], 
  bootstrap: [App] 
}) 

export class AppModule{}; 

谢谢你抽出时间.

推荐答案

问题在你的main.ts文件中.

const platform = platformBrowserDynamic();
platform.bootstrapModule(App);

您正在try bootstrap App,这不是一个真正的模块.

platformBrowserDynamic().bootstrapModule(AppModule);

它会纠正你的错误.

Typescript相关问答推荐

如何推断类方法未知返回类型并在属性中使用它

typescribe不能使用值来索引对象类型,该对象类型满足具有该值的另一个类型'

泛型和数组:为什么我最终使用了`泛型T []`而不是`泛型T []`?<><>

为什么typescript不能推断类的方法返回类型为泛型''

如何在使用`Next—intl`和`next/link`时导航

根据上一个参数值查找参数类型,也返回类型

如何使用泛型自动推断TS中的类型

是否使用非显式名称隔离在对象属性上声明的接口的内部类型?

分解对象时出现打字错误

已解决:如何使用值类型限制泛型键?

为什么我的查询钩子返回的结果与浏览器的网络选项卡中看到的结果不同?

复选框Angular 在Ngfor中的其他块中重复

类型脚本-在调用期间解析函数参数类型

Angular 16将独立组件作为对话框加载,而不进行布线或预加载

在单独的组件中定义React Router路由

创建一个函数,该函数返回一个行为方式与传入函数相同的函数

Typescript泛型调用对象';s方法

是否使用类型将方法动态添加到类?

基于泛型类型的条件类型,具有条目属性判断

redux-toolkit、createAsyncThunk 错误