解決策1: angular.json ファイルを確認する
Angular、NPM、Angular 8 に関する "Job name "..getProjectMetadata" does not exist" エラーについて
"Job name "..getProjectMetadata" does not exist" というエラーは、Angular 8 プロジェクトで ng build
または ng serve
コマンドを実行しようとした際に発生する可能性があります。このエラーは、プロジェクト設定ファイル (angular.json) に問題があることを示しています。
原因
このエラーにはいくつかの原因が考えられます。
- Node.js のバージョンが古い
- Node.js のバージョンが Angular 8 をサポートしていない可能性があります。
- NPM パッケージが不足している
- angular.json ファイルに誤りがある
projects
セクション内のプロジェクト名に誤りがある可能性があります。architect
セクション内のbuild
またはserve
ターゲットに誤りがある可能性があります。options
セクション内のoutputPath
プロパティに誤りがある可能性があります。
解決策
以下の方法で問題を解決できる可能性があります。
- angular.json ファイルを確認する
- プロジェクト名、ターゲット、出力パスが正しいことを確認してください。
- エラーメッセージで示されている具体的なファイル名と行番号を確認し、該当箇所を確認してください。
- NPM パッケージをインストールする
- Node.js のバージョンを確認する
- 以下のコマンドを実行して、Node.js のバージョンを確認してください。
node -v
- Node.js のバージョンが 10.x 以下である場合は、最新バージョンにアップグレードしてください。
- 以下のコマンドを実行して、Node.js のバージョンを確認してください。
- このエラーメッセージは、TypeScript コンパイラによって生成されるエラーメッセージである場合もあります。
- このエラーは、Angular 9 またはそれ以降のバージョンのプロジェクトでも発生する可能性があります。
{
"version": "1.0",
"defaultProject": "my-app",
"projects": {
"my-app": {
"architect": {
"build": {
"options": {
"outputPath": "dist/my-app"
}
},
"serve": {
"options": {
"port": 4200
}
}
}
}
}
}
このコードでは、プロジェクト名は my-app
であり、出力パスは dist/my-app
に設定されています。また、サーバポートは 4200
に設定されています。
- 以下のコマンドを実行して、Node.js のキャッシュをクリアしてください。
npm cache clean --force
- 以下のコマンドを実行して、Angular CLI のキャッシュをクリアしてください。
ng cache clean
プロジェクトを再作成する
- 以下のコマンドを実行して、新しい Angular プロジェクトを作成してください。
ng new <project-name>
- 以下のコマンドを実行して、現在のプロジェクトディレクトリを削除してください。
rm -rf <project-directory>
互換性のないパッケージを更新する
- 特定したパッケージを、互換性のあるバージョンに更新します。
- 上記のコマンドで出力されたパッケージの中から、Angular 8 と互換性がない可能性のあるパッケージを特定します。
- 以下のコマンドを実行して、インストールされている NPM パッケージの一覧を取得してください。
npm ls
問題のあるパッケージをアンインストール/再インストールする
- 以下のコマンドを実行して、問題があると思われるパッケージを再インストールしてください。
npm install <package-name>
ワークスペースファイルを編集する
- ワークスペースファイル内の
projects
セクションを確認し、プロジェクト名、ターゲット、出力パスなどの設定が正しいことを確認してください。 - 以下のコマンドを実行して、ワークスペースファイル (
workspace.json
) を編集します。code workspace.json
TypeScript コンパイラのオプションを変更する
tsconfig.json
ファイル内のcompilerOptions
セクションを確認し、target
オプションがes5
またはes6
に設定されていることを確認してください。- 以下のコマンドを実行して、TypeScript コンパイラのオプションファイル (
tsconfig.json
) を編集します。code tsconfig.json
問題のあるカスタムコードを修正する
- 特に、
getProjectMetadata
関数を使用している箇所を注意深く確認してください。 - プロジェクト内のカスタムコードを確認し、問題があると思われる箇所を修正してください。
angular npm angular8