Angular CLIプロジェクト用にJenkinsをセットアップしようとしています。特定のユーザーアカウントでJenkinsサーバーにノードとAngular Cliをインストールしました。開いた場合コマンドサーバーでプロンプトを表示し、次のコマンドを実行して、正しくインストールされていることを確認します。これが結果です。
Jenkinsを使用してプロジェクトを構成し、2つのビルドステップを作成して、2つのbatファイルを実行しました。
1回の実行:npm install
2番目は実行されます:ng build --prod
次に、Jenkinsをビルドし、npm installを実行しますが、「 'ng'は内部コマンドまたは外部コマンドとして認識されません」と表示されるため、ng build--prodの実行に失敗します。
私は何か間違ったことをしていますか? node_modulesフォルダーでangular cliを使用する別の方法はありますか?したがって、サーバーにインストールされているangular cliを使用する必要はありません。 like Angular CLIは、サーバー上の私のユーザーに対してのみインストールされ、Jenkinsがビルドに使用するユーザーに対してはインストールされません。
PS:私はAngular CLIをグローバルにインストールしました:
npm i -g @ angular/cli
サーバーにangular cliをインストールする必要はありません、実行するだけです
npm run ng -- build
これにより、プロジェクトからローカルバージョンが実行されますdevDependencies
このようにして、ローカルcliに任意のフラグを渡すことができますnpm run ng -- test
、npm run ng -- lint
など
そのように、追加のフラグを
ng
に渡すことができますrun ng -- build --prod
誰かが同じ問題を検索してこの質問を見つけたときのさらなる明確化のために(私がしたように):
この質問で尋ねられたように、ビルドコマンドの実行中に--prodフラグを使用する場合は、次を使用できます。
npm run ng -- build --prod
重要なのは、間隔を空けて「ng」と「build」の間の「-」です。これは「npmrun」の構文によるものです。詳細については、次を参照してください: https://docs.npmjs.com/cli/run-script
これにより、受け入れられた回答の下のコメントで説明されている問題も解決されます: "これは機能していますが、ビルドの実行時に--testなどの追加パラメーターが除外されています"
以下のようにしてみてください。
npm run ng build
の唯一の問題は、ビルド後に--prod
や--test
などの他のパラメーターが省略されることです。
以下は、私のangularビルドをJenkinsから正常に実行するために使用しているコマンドです。最後のコマンドは、パス変数を設定することによって汚い方法で実行されます。クリーナーがあるかどうかわからないこれを行う方法。これは、何も省略せずにコマンドを適切に実行します。
@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
ローカルコマンドプロンプトで動作している場合は、Jenkinサーバーを再起動します。
Jenkinsを再起動します-> http:// Host-name:port/base-url/restart
ex:- http://localhost:8080/jenkins/restart
ローカルコマンドでも機能しない場合は、angular CLIをグローバルにインストールし、環境設定を設定して、前の手順を実行します。