Angular 无法找到我的其他组件

Angular unable to find my other components

这是我的文件夹结构:

如您所见,我有一些组件,但是当我尝试将一个组件包含到另一个组件的文件中时,gulp 说无论我输入什么 url 都找不到它。

我一直在疯狂地四处寻找为什么会发生这种情况,但我发现你需要在项目的根目录下有一个 tsconfig.json 文件,然后我将其包含在内,但它似乎并没有做很多事情。该文件本身仅包含 {},这是您应该需要的最低限度,因为 gulp 负责使用 gulp-typescript (gulp-typescript).

进行编译

我正在使用 systemjs 将不同的 classes/modules 导入不同的文件,在我的 index.html 中,我已经这样配置了:

System.config({
  packages: {
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});

然后我像这样启动我的 Angular 2 应用程序(也在 index.html 中):

System.import('./app/assets/scripts/modules/boot/boot').then(null, console.error.bind(console));

示例组件文件 core.component.ts:

import {Component} from 'angular2/core'; // Works
import {NavComponent} from './app/assets/scripts/modules/nav/nav.component'; // Unable to find this file says gulp while compiling the typescript into js

@Component({
  selector: 'core-app',
  templateUrl: './app/assets/scripts/modules/core/core.component.html', // Also works
  styleUrls: ['./app/assets/scripts/modules/core/core.component.css'] // Also works
})

export class CoreComponent {

}

关于为什么会发生这种情况有什么想法吗?

你的导入应该是

import {NavComponent} from '../nav/nav.component';

因为 ES6 导入使用相对于您的文件的文件路径。

您在组件元数据中的 URL 的工作方式不同:它们是为 Angular 2 而不是编译器定义的。