インライン テンプレートを使用せずに、CSS モジュールを Angular 2 で動作させようとしています。公式のスタイル ガイドでは、3 行以上のマークアップがある場合はインライン テンプレートを使用しないことも提案しています。したがって、私の考えは と の組み合わせを使用することでしlodash-templates
たfile-loader
が、 の出力がlodash-template-loader
によって受け入れられるかどうかはわかりませんfile-loader
。これは、コンポーネントを次のように見せたい方法です。
import {Component} from '@angular/core';
var styles = require('./foo.css');
@Component({
'selector': 'my-component',
'templateUrl': require('./foo.html')
})
export class MyComponent {
}
の出力、lodash-template-loader
たとえばejs-loaderは、テンプレートのコンパイルに使用されるデータで呼び出す必要がある関数であるため、これが機能しないことはわかっています。styles
テンプレート内でを使用したい場合は、次のようにします。
<div class="<%= styles.root %>"></div>
ejs-loader
したがって、基本的には、たとえばこれを使用してコンパイルし、それをにパイプして、file-loader
個別の html ファイルを取得したいと考えています。これを達成する方法がわかりません。上記は単なるアイデアですが、ステートメントfile-loader
だけでは機能しないため、テンプレートをコンパイルしてパイプする方法がわかりません。require
何か案は?
のドキュメントによるとejs-loader
、テンプレートをコンパイルするには次のことを行う必要があります。
var template = require("ejs!./foo.html");
template(styles);
template
関数はテンプレートを文字列として返すと思います。しかし、それから別の html を作成するにはどうすればよいでしょうか? 私も必要file-loader
ですか?
編集
したがって、おそらく解決策は、ファイルとスタイル オブジェクトを受け取るカスタム ローダーを実装することです。次に、ローダーは、に渡すことができる出力を返しますfile-loader
。ここでの問題は、スタイル オブジェクトをローダーに渡す方法です。filer-loader
また、テンプレート文字列を読み取り可能な形式に変換する方法は?