生成された JavaScript ファイルを git ソース管理リポジトリに追加することは避けたいと考えています。Azure Git Deploy は、ファイルをデプロイする前にビルドを実行するための追加コマンドの実行をサポートしていますか?
5 に答える
今のところ、カスタム展開スクリプトを生成できますカスタム展開スクリプト
次に、npmコマンドを編集して、次のコマンドで新しいnode.exeバージョン(0.8.2)を使用します。
call "D:\Program Files (x86)\nodejs\0.8.2\node.exe" "D:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js" install --production
はい、カスタム デプロイ スクリプトを使用して任意のロジックを実行できます。必要なツールをリポジトリに含めるか、できれば必要に応じてダウンロードする必要があります (バイナリのコミットを避けるため)。
他の誰かが見ている場合に備えて、これは私がこれを機能させるために必要だったことです。
deploy.cmd
まず、ファイルの先頭に次の行を追加して、Kudu ビルド サーバーがアクセスできる場所に TypeScript がインストールされていることを確認します。
call npm install typescript
IF %ERRORLEVEL% NEQ 0 (
echo Unable to install TypeScript
goto error
)
これにより、Node-callable バージョンの TypeScript が に配置され.\node_modules\.bin\tsc.cmd
ます。
実際にビルドを実行するバッチ ファイル (さまざまな方法で呼び出すことができますが、主にビルド後のイベントとして呼び出すことができます) は次のようになります。
@echo off
if (%1%=="") goto settsc
cd %1%
:settsc
if exist ".\node_modules\.bin\tsc.cmd" (
set tsc=call ".\node_modules\.bin\tsc.cmd"
goto build
)
if exist "%ProgramFiles(x86)%\Microsoft Sdks\Typescript\0.9\tsc.exe" (
set tsc="%ProgramFiles(x86)%\Microsoft Sdks\Typescript\0.9\tsc.exe"
goto build
)
if exist "%ProgramFiles%\Microsoft Sdks\Typescript\0.9\tsc.exe" (
set tsc="%ProgramFiles%\Microsoft Sdks\Typescript\0.9\tsc.exe"
goto build
)
echo TypeScript compiler not found
exit 999
:build
echo Building TypeScript: Payboard.Site.js (using %tsc%)
%tsc% --sourcemap --out Scripts\Payboard\Payboard.Site.js @tsbuild_Site.txt
echo Building TypeScript: Payboard Widget (using %tsc%)
%tsc% --sourcemap --out Widget\v1.0\Payboard.js @tsbuild_Widget_v10.txt
echo Building TypeScript: App\Payboard.App.js (using %tsc%)
%tsc% --sourcemap --out App\Payboard.App.js @tsbuild_App.txt
これが他の誰かを助けることを願っています。
カスタム デプロイ スクリプトを必要とせず、バッチ ファイルを必要とせず、プロジェクト ファイルへの最小限の変更のみを行う回避策の別のオプションを次に示します。
詳細が記載されたブログ投稿は、http://manfredlange.blogspot.co.nz/2014/01/aspnet-mvc-typescript-azure-website-and.htmlで入手できます。ブログ投稿で参照されているサンプル プロジェクトのソース コードは、https://bitbucket.org/ml_agileutilities/typescript-sampleで入手できます。問題を再現するブランチと、回避策を含む 2 つ目のブランチがあります。
私の知る限り、Microsoft は適切な解決策に取り組んでいます。これを読んでいる時点では、回避策は不要になっている可能性があります。
Typescript は、スクリプトなしで使用できるようになりました。TypeScript が VS から動作することを確認するだけで、Kudu ビルドでも動作します。TypeScript のバージョンが衝突する可能性があることに注意してください。たとえば、この質問を参照してください。