これは少し古いですが、誰かがこの質問に出くわした場合に備えて、とにかく答えます。
まず、診断コンソールと展開ログの両方が ANSI コードで苦労するため、色を無効にして grunt を実行すると便利です。これを行うには、実行しますgrunt --no-color
。これにより、STDOUT 情報がコンソールとデプロイ ログに戻されます。
次に、Node または NPM のチェックイン バージョンの使用はお勧めしません。Windows Azure には既にこれらの機能が環境に組み込まれており、最適な状態で両方を実行するために必要な特別な一時パスとキャッシュ パスが既に構成されています。
Project Kuduは Azure Deployments を強化するデプロイ エンジンですが、.deployment ファイルがあるので、これは既にご存じでしょう。ただし、Azure コマンド ライン ツール [ npm install azure-cli --global
] は、Azure のプリインストールされたノードと NPM のセットアップを使用する、より優れたデプロイ スクリプトの足場を構築するのに役立ちます。
azure site deploymentscript –-node
そのベースノードスクリプトを取得します。
そこから、deploy.sh
Grunt を確実に実行できるようにするには、いくつかの変更が必要です。その中deploy.sh
に #Deployment セクションがあります。その内容を次のように置き換えます。
# Deployment
# ----------
echo Handling node.js grunt deployment.
# 1. Select node version
selectNodeVersion
# 2. Install npm packages
if [ -e "$DEPLOYMENT_SOURCE/package.json" ]; then
eval $NPM_CMD install
exitWithMessageOnError "npm failed"
fi
# 3. Install bower packages
if [ -e "$DEPLOYMENT_SOURCE/bower.json" ]; then
eval $NPM_CMD install bower
exitWithMessageOnError "installing bower failed"
./node_modules/.bin/bower install
exitWithMessageOnError "bower failed"
fi
# 4. Run grunt
if [ -e "$DEPLOYMENT_SOURCE/Gruntfile.js" ]; then
eval $NPM_CMD install grunt-cli
exitWithMessageOnError "installing grunt failed"
./node_modules/.bin/grunt --no-color clean common dist
exitWithMessageOnError "grunt failed"
fi
# 5. KuduSync to Target
"$KUDU_SYNC_CMD" -v 500 -f "$DEPLOYMENT_SOURCE/dist" -t "$DEPLOYMENT_TARGET" -n "$NEXT_MANIFEST_PATH" -p "$PREVIOUS_MANIFEST_PATH" -i ".git;.hg;.deployment;deploy.sh"
exitWithMessageOnError "Kudu Sync to Target failed"
これが実行npm install
され、続いてbower install
(bower.json が存在する場合)、続いてgrunt clean common dist
(Gruntfile.js が存在する場合)、最後に KuduSync が/wwwroot
. (注: 'clean common dist' は、実行する必要のある Grunt タスクに置き換えてください。)
他にもいくつかの問題が発生する可能性があります。これについては、個人のブログの投稿に書きます。これには、遭遇する可能性のある問題の一部が含まれています。