2016-07-08 17 views
2

私はASP.Net Core 1.0でホストされているAngular 2(RC4)に旅を始めています。私は$プロジェクト/アプリ/ app.componentにあるapp.component.tsファイルに変更を加えるたび
http://geekswithblogs.net/HumpreyCogay/Default.aspxHTMLファイルをwwwrootにコピーする最も良い方法は?

を:私はこのサイトからのhello世界のチュートリアルを追ってきた、そしてそれは、これまでも取り組んできました.ts、私の変更は$ project/wwwroot/app/app.component.jsファイルに反映されています。ハワイ。 Visual Studio 2015は、タイプスクリプトファイルを変更したことを知っていることを知り、私のtsconfigに基づいてwwwrootにダンプします。 FWIW、私tsconfig.jsonは次のようになります。だから、

{ 
    "compileOnSave": true, 
    "compilerOptions": { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false, 
    "outDir": "wwwroot/app/" 
     }, 
    "exclude": [ 
    "node_modules", 
    "wwwroot" 
    ] 
} 

、app.component.tsはインラインhtmlとして記載されているテンプレートがあります。私からそれを変更した場合:

templateUrl: './app/app.component.html' 

template: '<h1>My First Angular 2 App</h1>' 

そして、TSファイルはdutifiully jsファイル形式でwwwrootにするためにオーバーtranspiledが、私が作成したHTMLファイル($プロジェクト/アプリ/ app.componentます.html)はありません。手動でそこにコピーすると、テストアプリケーションは期待通りに動作します。

したがって、変更/追加するたびにhtmlファイルを手動でwwwrootにコピーすることはできません。この種のものを自動的に見つけ出すために推奨される習慣は何ですか? .scssファイル(これはうれしいことにcompilerconfig.jsonを生成しました)で既に何かが得られています。したがって、.htmlファイルに使用できるいくつかのメカニズムがあると思います。

また、$ project/wwwroot/libsにnode_modulesをクリーンアップ/コピーするためのgulpfile.jsがありますが、これが.htmlファイルをコピーするための適切な場所であるかどうかは不明ですし、それの魔法のネス。私のnode_moduleについては、必要なときに手動でクリーン・コピー・タスクを起動します。

+0

は、なぜあなたはwwwrootの下でそれを配置する必要があります? – Pawel

+0

私はwwwrootの下にappを持っています。これは私の 'dist'(ここではjavascript +テンプレート)のように扱います。私は私の本当の開発を行う別のアプリを持っていると、VSのtypescriptコンパイラは魔法のようにjsファイルとwwwrootに存在するアプリにコピーから吐き出す。 –

答えて

4

ガルプやグラントのようなツールを見てください。 これらは一般的にそのようなタスクに使用されます。 たとえば、htmlファイルなどの変更を監視するウォッチャーがあり、変更検出時に別のフォルダーにコピーするなどの特定のタスクを実行します。 あなたが必要とするもの。

.NET Core rc1とAngular 2 RC4のプロジェクトもあります。ここ は(も私のSASSファイルへの変更を監視し、変更されたときにそれらをコンパイルする)私のgulpfileからの抜粋です:アプリのルートがwwwrootに、これらの日の親である場合

var scriptsSource = "./scripts/"; 
var scriptsDest = "./wwwroot/app"; 

var sassSource = "./sass/"; 
var sassDest = "./wwwroot/Content/css"; 

gulp.task("html", function() 
{ 
    gulp.src(scriptsSource + "**/*.html") 
     .pipe(gulp.dest(scriptsDest)); 
}); 


gulp.task("sass", function() 
{ 
    return gulp.src(sassSource + "MovieStyles.scss") 
    .pipe(sass().on("error", sass.logError)) 
    .pipe(gulp.dest(sassDest)); 
}); 

gulp.task("watch", function() 
{ 
    gulp.watch(scriptsSource + "**/*.html", ["html"]); 
    gulp.watch(sassSource + "**/*.scss", ["sass"]); 
}); 

gulp.task("default", ["sass", "html", "watch"]); 
+0

それは胃腸です。 gulpでnode_modulesをコピーしているだけで、何か違うものが必要なように感じました。私は仕事から家に帰るときにスピンを与え、このSOのエントリーを更新します。 –

+0

ASP Core + Angular2のコンテキストでGulpを使用していくつかのベストプラクティスを拡張できますか?このペアリングは非常に新しく、この時点でベストプラクティスがあれば、グーグルではあまりそうではないようです。 –

+0

わかりやすいように私の答えに私のgulpfileの関連部分を追加しました。 – hholtij

関連する問題