I have just created a brand new Angular project using npx @angular/cli@13 new Ubisoft.SupplierPortalNext.Spa
and npm install
reports:
npm WARN ajv-keywords@3.5.2 requires a peer of ajv@^6.9.1 but none is installed. You must install peer dependencies yourself.
This is confirmed by npm ls --depth 0
:
npm ERR! peer dep missing: ajv@^6.9.1, required by ajv-keywords@3.5.2
npm ERR! peer dep missing: ajv@^6.9.1, required by ajv-keywords@3.5.2
npm ERR! peer dep missing: ajv@^6.9.1, required by ajv-keywords@3.5.2
I do not mind living with this warning, but I do not want to bite me later, so I am trying to solve it if possible. This package is used by various other packages (npm ls ajv-keywords
):
`-- @angular-devkit/build-angular@13.3.8
+-- babel-loader@8.2.5
| `-- schema-utils@2.7.1
| `-- ajv-keywords@3.5.2
+-- copy-webpack-plugin@10.2.1
| `-- schema-utils@4.0.0
| `-- ajv-keywords@5.1.0
+-- mini-css-extract-plugin@2.5.3
| `-- schema-utils@4.0.0
| `-- ajv-keywords@5.1.0
+-- webpack@5.70.0
| +-- schema-utils@3.1.1
| | `-- ajv-keywords@3.5.2 deduped
| `-- terser-webpack-plugin@5.3.3
| `-- schema-utils@3.1.1
| `-- ajv-keywords@3.5.2 deduped
+-- webpack-dev-middleware@5.3.0
| `-- schema-utils@4.0.0
| `-- ajv-keywords@5.1.0
`-- webpack-dev-server@4.7.3
`-- schema-utils@4.0.0
`-- ajv-keywords@5.1.0
Both default ng serve
and ng serve
with a "localprod" configuration (AOT build served locally to check that the build actually works) work as expected with the default project.
I have installed ajv@^6.9.1
as requested, but now another major version is required:
npm WARN ajv-keywords@5.1.0 requires a peer of ajv@^8.8.2 but none is installed. You must install peer dependencies yourself.
Also, ng serve
breaks:
An unhandled exception occurred: Cannot find module 'ajv/dist/compile/codegen'
Require stack:
- <myproject>\node_modules\webpack-dev-server\node_modules\ajv-keywords\dist\definitions\typeof.js
- <myproject>\node_modules\webpack-dev-server\node_modules\ajv-keywords\dist\keywords\typeof.js
- <myproject>\node_modules\webpack-dev-server\node_modules\ajv-keywords\dist\keywords\index.js
- <myproject>\node_modules\webpack-dev-server\node_modules\ajv-keywords\dist\index.js
- <myproject>\node_modules\webpack-dev-server\node_modules\schema-utils\dist\validate.js
- <myproject>\node_modules\webpack-dev-server\node_modules\schema-utils\dist\index.js
- <myproject>\node_modules\webpack-dev-server\lib\Server.js
- <myproject>\node_modules\@angular-devkit\build-webpack\src\webpack-dev-server\index.js
- <myproject>\node_modules\@angular-devkit\build-webpack\src\index.js
- <myproject>\node_modules\@angular-devkit\build-angular\src\builders\dev-server\index.js
- <myproject>\node_modules\@angular-devkit\architect\node\node-modules-architect-host.js
- <myproject>\node_modules\@angular-devkit\architect\node\index.js
- <myproject>\node_modules\@angular\cli\models\architect-command.js
- <myproject>\node_modules\@angular\cli\commands\serve-impl.js
- <myproject>\node_modules\@angular-devkit\schematics\tools\export-ref.js
- <myproject>\node_modules\@angular-devkit\schematics\tools\index.js
- <myproject>\node_modules\@angular\cli\utilities\json-schema.js
- <myproject>\node_modules\@angular\cli\models\command-runner.js
- <myproject>\node_modules\@angular\cli\lib\cli\index.js
- <myproject>\node_modules\@angular\cli\lib\init.js
Any idea about how to solve this issue? Or can I just let it be since ng serve and build work correctly?