2016-06-15 10 views
6

AzureのGitデプロイメントを使用してプロジェクトをビルドしてパッケージ化しようとしています。Azure Webアプリケーションでgruntが失敗するdeploy.cmdファイル

私は

  1. .deployment
  2. Gruntfile.js
  3. 私は「package.json
  4. bower.json

をdeploy.cmd以下のファイルを作成しましたジェイ・ハリスがblog postに続きました。与えられたが、deploy.cmdファイルでの展開セクションは下記

:: 2. Select node version 
call :SelectNodeVersion 

:: 3. Install npm packages 
IF EXIST "%DEPLOYMENT_TARGET%\package.json" (
    pushd "%DEPLOYMENT_TARGET%" 
    call :ExecuteCmd !NPM_CMD! install --production 
    IF !ERRORLEVEL! NEQ 0 goto error 
    popd 
) 

:: 4. Install bower packages 
IF EXIST "%DEPLOYMENT_TARGET%\bower.json" (
    call !NPM_CMD! install bower 
    IF !ERRORLEVEL! NEQ 0 goto error 
    call .\node_modules\.bin\bower install 
    IF !ERRORLEVEL! NEQ 0 goto error 
) 

:: 4. run grunt 
IF EXIST "%DEPLOYMENT_TARGET%\Gruntfile.js" ( 
    call !NPM_CMD! install grunt-cli 
    call .\node_modules\.bin\grunt --no-color clean common dist 
    IF !ERRORLEVEL! NEQ 0 goto error 
) 

展開は以下のエラーで失敗します。

Selected npm version 3.8.6 
Updating iisnode.yml at D:\home\site\wwwroot\iisnode.yml 
[email protected] D:\home\site\wwwroot 
+-- [email protected] extraneous 
npm WARN [email protected] requires a peer of [email protected]>=0.4.0 but none was installed. 
+-- UNMET PEER DEPENDENCY [email protected]>=0.4.0 
`-- [email protected] extraneous 

[email protected] D:\home\site\repository 
`-- [email protected] extraneous 

[email protected] D:\home\site\repository 
+-- [email protected] extraneous 
`-- [email protected] extraneous 

grunt-cli: The grunt command line interface (v1.2.0) 

Fatal error: Unable to find local grunt. 

If you're seeing this message, grunt hasn't been installed locally to 
your project. For more information about installing and configuring grunt, 
please see the Getting Started guide: 

http://gruntjs.com/getting-started 
An error has occurred during web site deployment. 
npm WARN [email protected] requires a peer of [email protected]>=0.4.0 but none was installed.\r\nC:\Program Files (x86)\SiteExtensions\Kudu\55.50610.2267\bin\Scripts\starter.cmd deploy.cmd 

私はそれがインストールされますし、ここで実行する必要がある他に何かわかりません。ネット上で同様の問題を検索しようとしましたが、問題の具体的な解決策が見つかりませんでした。誰もがこれで私を助けることができれば素晴らしいだろう。

マイpackage.json

{ 
    "name": "myapp", 
    "private": true, 
    "devDependencies": { 
    "autoprefixer-core": "^5.2.1", 
    "grunt": "^0.4.5", 
    "grunt-angular-templates": "^0.5.7", 
    "grunt-concurrent": "^1.0.0", 
    "grunt-contrib-clean": "^0.6.0", 
    "grunt-contrib-compass": "^1.0.0", 
    "grunt-contrib-concat": "^0.5.0", 
    "grunt-contrib-connect": "^0.9.0", 
    "grunt-contrib-copy": "^0.7.0", 
    "grunt-contrib-cssmin": "^0.12.0", 
    "grunt-contrib-htmlmin": "^0.4.0", 
    "grunt-contrib-imagemin": "^1.0.0", 
    "grunt-contrib-jshint": "^0.11.0", 
    "grunt-contrib-uglify": "^0.7.0", 
    "grunt-contrib-watch": "^0.6.1", 
    "grunt-filerev": "^2.1.2", 
    "grunt-google-cdn": "^0.4.3", 
    "grunt-jscs": "^1.8.0", 
    "grunt-newer": "^1.1.0", 
    "grunt-ng-annotate": "^0.9.2", 
    "grunt-postcss": "^0.5.5", 
    "grunt-svgmin": "^2.0.0", 
    "grunt-usemin": "^3.0.0", 
    "grunt-wiredep": "^2.0.0", 
    "imagemin": "^5.2.1", 
    "jasmine-core": "^2.4.1", 
    "jit-grunt": "^0.9.1", 
    "jshint-stylish": "^1.0.0", 
    "karma": "^0.13.22", 
    "karma-jasmine": "^1.0.2", 
    "karma-phantomjs-launcher": "^1.0.0", 
    "phantomjs-prebuilt": "^2.1.7", 
    "readable-stream": "^2.1.4", 
    "through2": "^2.0.1", 
    "time-grunt": "^1.0.0", 
    "vinyl-fs": "^2.2.1" 
    }, 
    "engines": { 
    "node": ">=0.10.0" 
    }, 
    "scripts": { 
    "test": "karma start test\\karma.conf.js" 
    } 
} 

:これまでのところ何の解決策が見つからない、私は私が何ができるかを把握するAzureのサポートチームに行きますよ。解決策が見つかるとその質問を更新します。

答えて

2

similarquestionsの大半は、(紺碧のためではないが)にポイント:

npm install grunt --save-dev 
npm install -g grunt --save-dev 

This threadがうなり声をインストールする必要があります言及(スクリプトからgruntを使用している場合は、インストールグローバル-gを試してみてください)紺色のためにPATHに存在する:

The problem is not that grunt is not found on the path (" D:\Program Files (x86)\grunt\0.1.13\grunt "). It definitely starts running, but it's grunt itself that complains.
If I got to Kudu console and run ' grunt ' from the D:\home\site\repository folder, it displays exactly the same thing.

projectkudu/kudu Issue 1150確認:

grunt issue 1459に見られるように

this does not happen when running Kudu locally (i.e. outside of Azure).
So maybe something funky with the runtime env on Azure Websites.

、終了ステータスエラーコードチェック:だから

$ echo $? 
99 

we will first rename the node_modules/grunt directory, so that grunt-cli will be unable to find local grunt. This should result in error code 99.

The expected results occur, which make me believe the misleading grunt-cli error message has confused developers into thinking that Grunt itself is returning the wrong error code.

アズールの場合は、うなり声がインストールされるかもしれないパス上の、しかし、そうでない場合はgrunt-cliとなります。

+0

これは解決策がないと言いますか? – JPReddy

+0

@JPReddy「grunt」が実際に正しくインストールされていることを確認した後(ローカルまたはグローバルに '-g'で)、問題が解決しない場合は、' grunt-cli'が 'grunt 'それが分かりにくい場合は、ケースをAzureにエスカレートし、問題が環境にあるかどうかを確認します。 – VonC

+0

あなたは正しいです、私はAzureサポートチームにエスカレートしなければならないと思います – JPReddy

2

package.jsonに次の行があることを制御します。

"devDependencies": { 
    "grunt": "~0.4.5", 
.. 
} 

あなたのプロジェクトでは、Grunt-cliはローカルの不満を予想しています。このエラーは

Fatal error: Unable to find local grunt.

についてです。あなたのスクリプトはすでにをインストールしているので、をインストールするには、"grunt": "〜0.4.5"という行を依存関係に追加してください。

次のコマンドも同じことを行います。これは、devDependenciesに不正を追加することです。

npm install grunt --save-dev 
+0

それは仲間を働かせなかった、私はすでにpackage.jsonのこの依存関係の行を持っています – JPReddy

+0

今回は何がエラーですか? –

+0

同じエラーが発生します。私は、このエラーが表示される前でも依存関係のエントリがあることを言うことを意味する – JPReddy

関連する問題