【问题标题】:webpack converts html content into a url and tries to load itwebpack 将 html 内容转换为 url 并尝试加载它
【发布时间】:2018-06-19 01:19:29
【问题描述】:

您好,我正在从 systemjs 迁移到 webpack,我遇到了一个奇怪的问题。 Webpack 尝试通过将 html 内容转换为 url 来加载 html 资源并尝试加载它。

目录结构

├── dist (ignored)
├── package.json
├── src
│   ├── app
│   │   ├── app.component.html
│   │   ├── app.component.ts
│   │   ├── kline.component.ts
│   │   ├── market-data.component.html
│   │   ├── market-data.component.ts
│   │   └── market-data.service.ts
│   ├── app.module.ts
│   ├── app.routes.ts
│   ├── entity
│   │   └── coinmarketcaptoken-entity.ts
│   ├── index.html
│   └── main.ts
├── tsconfig.json
├── tslint.json
└── webpack.config.js

webpack.config.js

var path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {

    entry: {
        "app": "./src/main.ts"
    },

    output: {
        filename: 'index_bundle.js',
        path: path.resolve(__dirname, 'dist')
    },

    resolve: {
        extensions: ['.ts', '.js', '.json']
    },

    module: {
        rules: [
            {
                test: /\.ts$/,
                loaders: ['awesome-typescript-loader', 'angular2-template-loader']
            },
            {
                test: /\.html$/,
                loader: 'html-loader'
            },
            { 
              test: /\.css$/, 
              loader: 'raw-loader',
              exclude: /\.async\.css$/
            }
        ]
    },

    plugins: [
        new HtmlWebpackPlugin({
            template: "src/index.html"
        })
    ]
};

app.component.html

<router-outlet></router-outlet>

app.component.ts

import { Component } from "@angular/core";

@Component({
    selector: "app-root",
    templateUrl: require("./app.component.html")
})
export class AppComponent {}

这是来自 chrome 控制台的屏幕截图。

【问题讨论】:

    标签: angular webpack webpack-dev-server


    【解决方案1】:

    我解决了这个问题,我从我拥有的每个角度组件中删除了 templateUrl 参数的 require() 语句。所以,一个普通的组件会是这样的;

    import { Component } from "@angular/core";
    
    @Component({
        selector: "app-root",
        templateUrl: "./app.component.html"
    })
    export class AppComponent {}
    

    angular2-template-loader 处理 templateUrl 和 styleUrls 通过添加 https://www.npmjs.com/package/angular2-template-loader 中提到的 require 本身

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-14
      • 2011-08-04
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多