web-dev-qa-db-ja.com

ngは内部コマンドまたは外部コマンドとして認識されません。 Jenkins + Angular CLI

Angular CLIプロジェクト用にJenkinsをセットアップしようとしています。特定のユーザーアカウントでJenkinsサーバーにノードとAngular Cliをインストールしました。開いた場合コマンドサーバーでプロンプトを表示し、次のコマンドを実行して、正しくインストールされていることを確認します。これが結果です。

enter image description here

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

5
D.B

サーバーにangular cliをインストールする必要はありません、実行するだけです

npm run ng -- build 

これにより、プロジェクトからローカルバージョンが実行されますdevDependencies

このようにして、ローカルcliに任意のフラグを渡すことができますnpm run ng -- testnpm run ng -- lintなど

そのように、追加のフラグをngに渡すことができます
run ng -- build --prod

詳細については https://docs.npmjs.com/cli/run-script

11
kuncevic.dev

誰かが同じ問題を検索してこの質問を見つけたときのさらなる明確化のために(私がしたように):

この質問で尋ねられたように、ビルドコマンドの実行中に--prodフラグを使用する場合は、次を使用できます。

npm run ng -- build --prod

重要なのは、間隔を空けて「ng」と「build」の間の「-」です。これは「npmrun」の構文によるものです。詳細については、次を参照してください: https://docs.npmjs.com/cli/run-script

これにより、受け入れられた回答の下のコメントで説明されている問題も解決されます: "これは機能していますが、ビルドの実行時に--testなどの追加パラメーターが除外されています"

6
apexde

以下のようにしてみてください。

BUILD_ID = dontKillMe Nohup ngserve

0
Janath

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
0
Sri7

ローカルコマンドプロンプトで動作している場合は、Jenkinサーバーを再起動します。

Jenkinsを再起動します-> http:// Host-name:port/base-url/restart

                ex:- http://localhost:8080/jenkins/restart

ローカルコマンドでも機能しない場合は、angular CLIをグローバルにインストールし、環境設定を設定して、前の手順を実行します。

0
user9518068