2016-10-13 5 views
0

私はAngular 1.5を使用するASP.Net 4.5 MVCアプリケーションを持っています。 JSコードはTypescriptで、ポストビルドアクションはjsコードをビルドし、それを自分のアプリケーションが参照するフォルダにデプロイします。Azure Gitに対応したデプロイメントスクリプトの正しいインストール

私は私のgitlabリポジトリをバックアップして私の紺碧のWebアプリケーションのスロットを持っています。リポジトリにコミットするとデプロイが開始されますが、配備後のビルドでは、bower/npmや入力ライブラリが更新されたときに問題が発生するようです(kuduコンソールで手動でフォルダをクリアすることで解決します)。誰かが

  • NPMの同等のファイルが正しくデプロイされるよう
  • タイピングがパイプライン内の正しいポイントで

をインストールインストールしないdeploy.cmdスクリプトの例を持っています。 私は新しいスロットでスクラッチを開始し、既存のスロットが過去に動作するようにしたいのですが、タイピングエラーなしでビルドを行うためには、手動で"npm install typings --global"のようなタイピングをインストールしなければなりませんでした。 以下

UPDATE出力Iは、以下のエラーがtypescriptです> 1.6を必要とする参照ファイル上typescriptです1.6コンパイラを実行している紺碧によるものであると推測しています。私csprojは<TypeScriptToolsVersion>2.0</TypeScriptToolsVersion> (アイブコンパイル出力からの私のファイルを削除しましたが、_all.d.tsファイルはtypescriptですチームは最終的にバージョンを生成した後

CompileTypeScript: 
    D:\Program Files (x86)\Microsoft SDKs\TypeScript\1.6\tsc.exe --sourcemap --target ES5 --noEmitOnError "REMOVED MY TYPESCRIPTFILES" "D:\home\site\repository\mymvcproject\app\src\_all.d.ts" 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,32): error TS1110: Build: Type expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,50): error TS1005: Build: ']' expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,58): error TS1005: Build: ',' expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,59): error TS1136: Build: Property assignment expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1941,1): error TS1128: Build: Declaration or statement expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj] 
Done Building Project "D:\home\site\repository\mymvcproject\mymvcproject.csproj" (Build;pipelinePreDeployCopyAllFilesToOneFolder target(s)) -- FAILED. 

FINAL UPDATE 以下のエラーのあるファイルを参照し Azureの上に設置した後、クーズーチームがそれを展開することができた* typescriptです2.の。今、全体のプロセスが動作する!

"preinstall": "npm install typescript -g && npm install typings -g" 

の使用に関する以下の注意事項は、ソリューションの他の部分ました!

+0

bower/npmやタイピングライブラリが更新されたときの問題は何ですか?失敗した展開に関する詳細を教えてください。 Azure Portalにログインし、Webアプリケーションを選択し、APP DEPLOYMENT> Deployment optionsをクリックし、失敗したデプロイメントをクリックして、デプロイメント詳細ブレードのView logリンクをクリックします。 –

+0

私は今スロットを削除し、再作成しました。私は理想的には、タイピングがインストールされていることを確認するために手動でコマンドを実行する必要がないテンプレートを必要としました。次はこれらのエラーが発生すると、メッセージが表示されます。 – Tim

+0

おそらく、これらはあなたを始めることができますか? https://github.com/projectkudu/kudu/wiki/Post-Deployment-Action-Hooks https://github.com/projectkudu/kudu/wiki/Custom-Deployment-Script –

答えて

2

要件に応じて、目的を達成するために以下の手順を実行できます。

あなたはクーズーツールにログインすることができ展開スクリプト

作成します(HTTPSを://.scm.azurewebsites.net/)、クリックして "ツール"> "の展開スクリプトをダウンロードしてください"。また、azure-cliを使用してスクリプトを生成することもできます。 azure-cliを使用してデプロイメントスクリプトを生成する方法の詳細については、tutorialを参照してください。

は、あなたのパッケージを管理するためにNPMを使用するために展開スクリプト

をカスタマイズし、あなたのpackage.jsonファイルに次のスクリプトを追加することができます。

"scripts":{ 
    "preinstall": "npm install typescript -g && npm install typings -g" 
} 

その後、あなたはdeploy.cmdファイルに次のスクリプトを追加する必要があります。

IF EXIST "%DEPLOYMENT_SOURCE%\package.json" (
    pushd "%DEPLOYMENT_SOURCE%" 
    echo installing npm package 
    call :ExecuteCmd npm install --production 
    IF !ERRORLEVEL! NEQ 0 goto error 
    popd 
) 

それとも、コマンドライン経由で直接typescriptですし、タイピングをインストールするには、次のスクリプトを追加することができます。

echo Installing typescript and typings 
call npm install typescript -g && npm install typings -g 
IF !ERRORLEVEL! NEQ 0 goto error 

注:.deployment、deploy.cmdファイルは、ソリューションのルートディレクトリに配置する必要があります。詳細はsampleプロジェクトを参照してください。

+0

本当に役に立ちました。 AzureのWebアプリケーションにTypescript 2ツールがインストールされていないため、私は偶然にもエラーが発生しています。しかし、これはもうすこし時間がかかるようですが、https://github.com/projectkudu/kudu/issues/2156 – Tim

関連する問題