4

Angular 2 アプリをコーディングすると、tsconfig.jsonファイルに次のパラメーターが含まれます。

"outDir": "dist"

つまり、TypeScript から JavaScript へのコンパイルでは、生成されたファイルがdistフォルダーに保存されます。

私の問題は、次のように、外部テンプレートまたは CSS ファイルを持ち、コンポーネント相対パスを使用するコンポーネントを使用しようとするときです。

@Component({
  moduleId: module.id,
  selector: 'my-cmp',
  templateUrl: 'my.component.html',
  styleUrls:  ['my.component.css']
})
export class MyComponent { }

ブラウザーは、トランスパイルされた JavaScript ファイルが置かれているのと同じフォルダー ( の下) から.htmlとファイルを読み込もうとします。ただし、これらのファイルは元のフォルダー (元の TypeScript ファイルがある場所) にのみ存在します。.cssdist

これを解決するには?

注: を削除moduleId: module.idして絶対パス (例: ) を使用すると、コードは機能しますapp/my-cmp/my.component.htmlが、それは私が望むものではありません。;-)

4

2 に答える 2

1

JavaScript をdistフォルダーに出力したいので、配布を想定して、html と css をdistフォルダーにコピーするスクリプトも作成できます。通常、これらのファイルに対してある種の縮小を実行すると、それをより価値のあるものにすることができます。

もう 1 つの方法は、ルート ディレクトリを介してこれらのパスを相対的に参照することです。たとえば、ファイルがある場合は、 を実行/someDir/myfile.tsして/someDir/my.component.html参照できます。に行く場合、それは機能します。これの欠点は、プロジェクトが大きくなると面倒になる可能性があることです。そのため、お勧めしません。my.component.html../someDir/my.component.html/someDir/myfile.ts/dist/myfile.js

于 2016-06-14T14:08:03.773 に答える