2017-01-09 4 views
1

Angular2をフロントエンドクライアントとして使用する.NETコアプロジェクトがあります。このフロントエンドは、私たちのソリューションのFrontendディレクトリにあります。Angular2のツールをインストールするためのASPコアのプレ/ポストパブリッシュアクション

このフロントエンドには、.NETプロジェクトの残りの部分すべてを分離するためのpackage.jsonとangular-cli.jsonが含まれています。 ng buildに、Angular2でコンパイルされたファイルが../wwwrootディレクトリに送られます。

私たちのプロジェクト構造:

  • npm install -g angular-cli:誰かがプロジェクトをチェックアウトして上のこれらのアクションを呼び出すことができるように(アズールに)公開

    Project Structure

    私たちが望みます、

  • .NETのコアファイルでこれを達成するための方法10

私はこれを設定するには、Azureの上deployementを標的、例えば試してみました:

"prepublish": [ "npm install -g angular-cli" ], 
"postpublish": [ "cd Frontend && npm install && ng build --prod", "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 

しかし、それは展開を破ります。公開前と公開後の両方(cd Frontend以降のコマンド)は有効ですか?

Visual Studioを同じようにするには、人々がgit repoをチェックアウトしてビルドしたらどうすればいいですか?

+0

あなたはどのようなエラーがありますか? – Set

答えて

0

一般に、任意のタスクランナー(gulp、npmタスクなど)を使用し、postpublishステップ(またはプリビルドのような他のステップ)では、適切なタスクを実行するだけです。

別の方法として、反対方向のステップを実行して、dotnetコマンド(ビルド、デプロイなど)をnpmタスクスクリプトから呼び出すこともできます。たとえば、ASP.NET CoreとAngular2をWebpackで使用する例であるthisレポを調べることができます。彼らは、実行または展開、ビルドなどの任意のアクションのエントリポイントとしてthose NPMタスクを使用します。

NPMのpackage.jsonの設定負荷角度2とWebPACKのに必要なすべてのパッケージを。 WebpackパッケージはすべてdevDependenciesに追加されます。 "npm build"スクリプトと "npm buildProduction"も設定されているので、クライアントアプリケーションは "npm build"または "npm buildProduction"を使ってcmdplotからWebpackを使ってビルドできます。

関連する問題