angular2-template-loader无法内联组件模板

Den*_* B. 6 webpack angular

我正在关注Angpack 2的Webpack上的入门教程:https://angular.io/docs/ts/latest/guide/webpack.html

完成所有步骤后,我在尝试加载应用程序组件的模板时收到404错误.

该教程清楚地指出app.component.html和app.component.css应该由angular2-template-loader动态进行Bundeled,但它们不是,因为浏览器试图通过XHR请求它们.

本教程中的app.compnent.ts代码:

import { Component } from '@angular/core';
import '../../public/css/styles.css';
@Component({
    selector: 'my-app',
    templateUrl: 'app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent { }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果我指定相对于基本路径的模板路径,它可以工作,但这不是正确的方法.

import { Component } from '@angular/core';
import '../../public/css/styles.css';
@Component({
    selector: 'my-app',
    templateUrl: './src/app/app.component.html',
    styleUrls: ['./src/app/app.component.css']
})
export class AppComponent { }
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么会这样,有人能够用一个有效的解决方案完成教程吗?

小智 10

确保webpack执行打字稿编译过程.我有同样的问题,问题是Visual Studio在保存时编译我的ts文件,并且由于WebPack配置为解析.js文件和.ts文件,因此加载器试图在已编译的js文件上应用源ts文件.

总结一下:

  1. 确保您的目录中没有已编译的ts文件.
  2. 在项目的本地node_modules中安装typescript.
  3. 按照角度教程配置webpack.
  4. 从webpack.config.js文件所在目录中的命令行运行webpack.这确保webpack是THE ONE进行打字稿编译,因此ts文件进入管道.

它现在应该适合你.