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
この警告を無効にするには、「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
CLIをグローバルにインストールしないでください。
npm install
リポジトリーおよびng
コマンドを実行する必要があるときはいつでもこれを使用します。
node_modules/.bin/ng [command goes here]
これにより、インストール時間が短縮され、ローカルバージョンとグローバルバージョンの間に違いがないことが保証されます。
追加のコメント:アプリを最新バージョンのCLIに更新する
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