web-dev-qa-db-ja.com

JenkinsビルドバッチコマンドでWindowsサーバーでangular cliを使用する方法

jenkinsをインストールする前に、これを実行しました:npm install -g @ angular/cli

しかし、私はプロジェクトのpackage.jsonのdevDependenciesにもこれがあります:

"@ angular/cli": "1.0.0-beta.32.3"


jenkinsビルドを実行すると、ログに次のメッセージが表示されます。

'ng'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。

=======================================

JenkinsのWindowsバッチコマンドは次のとおりです。

cmd/c call npm install

Path =%WORKSPACE%\ node_modules\@angular\cli\bin;%PATH%を設定

エコー%PATH%

ng build -prod

========================================

jenkinsからのもう少しのログ出力は次のとおりです。

C:\ Program Files(x86)\ Jenkins\workspace\UiUnitTests> ng build -prod

'ng'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。

C:\ Program Files(x86)\ Jenkins\workspace\UiUnitTests> exit 9009ビルドステップ「Windowsバッチコマンドを実行」でビルドが失敗としてマークされました


しかし、これをコマンドラインからのみ実行すると(Jenkinsジョブではない)、これはうまく機能します。

C:\ Program Files(x86)\ Jenkins\workspace\UiUnitTests> ng build -prod

グローバルAngular CLIバージョン(1.0.0-rc.1)はローカルよりも大きい

バージョン(1.0.0-beta.32.3)。ローカルAngular= CLIバージョンが使用されます。

この警告を無効にするには、「ng set --global warnings.versionMismatch = false」を使用します。ハッシュ:7853ecb5a81a25eadbeb時間:61317msチャンク{0} polyfills.7aaf5284cd5921eea40b.bundle.js(ポリフィル)278 kB {4} [初期] [レンダリング]チャンク{1} main.3380f71d3e71966aea27.bundle.js(main)371 kB {3} [初期] [レンダリング]チャンク{2} styles.9db1bafdfc989b37db97.bundle.css(スタイル)69バイト{4} [初期] [レンダリング]チャンク{3} vendor.24574fc8320129058fac.bundle.js(ベンダー)2.18 MB [初期] [レンダリング]チャンク{4} inline.d1f5b52100bed2568d44.bundle.js(インライン)0バイト[エントリ] [レンダリング]

C:\ Program Files(x86)\ Jenkins\workspace\UiUnitTests>

===============================================

最後になりましたが、ここにecho%PATH%からのJenkinsログ出力があります

C:\ Program Files(x86)\ Jenkins\workspace\UiUnitTests> echo C:\ Program Files(x86)\ Jenkins\workspace\UiUnitTests\node_modules\@angular\cli\bin; C:\ Windows\system32; C:\ Windows; C:\ Windows\System32\Wbem; C:\ Windows\System32\WindowsPowerShell\v1.0 \; C:\ Program Files\Amazon\cfn-bootstrap \; C:\ Ruby23-x64\bin; C:\ Program Files\nodejs \; C:\ Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps C:\ Program Files(x86)\ Jenkins\workspace\UiUnitTests\node_modules\@angular\cli\bin; C:\Windows\system32; C:\ Windows; C:\ Windows\System32\Wbem; C:\ Windows\System32\WindowsPowerShell\v1.0 \; C:\ Program Files\Amazon\cfn-bootstrap \; C:\ Ruby23 -x64\bin; C:\ Program Files\nodejs \; C:\ Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps

14
user372225

CLIをグローバルにインストールしないでください。

npm installリポジトリーおよびngコマンドを実行する必要があるときはいつでもこれを使用します。

node_modules/.bin/ng [command goes here]

これにより、インストール時間が短縮され、ローカルバージョンとグローバルバージョンの間に違いがないことが保証されます。

追加のコメント:アプリを最新バージョンのCLIに更新する

27
Brocco

npm run ng buildを試してください。これに関する唯一の問題は、ビルド後に--prod--testなどの他のパラメーターが省略されることです。

以下は、Jenkinsからangular buildを正常に実行するために使用しているコマンドです。最後のコマンドは、パス変数を設定することでダーティーな方法で実行されます。これにより、何も省略せずにコマンドが適切に実行されます。

@echo on
cmd /c npm install -g @angular/cli@latest

echo yarn Install
cmd /c yarn

echo Build
set PATH=%PATH%;C:\Users\Administrator\AppData\Roaming\npm;C:\Users\Administrator\AppData\Roaming\npm\node_modules\@angular\cli\bin;
ng build --prod --aot=true
3
Sri7