Micessien
Micessien

Reputation: 930

Quasar Error: Cannot find module 'ajv/dist/compile/codegen'

(node:21216) UnhandledPromiseRejectionWarning: Error: Cannot find module 'ajv/dist/compile/codegen'

(node:21216) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:21216) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Upvotes: 76

Views: 205509

Answers (10)

shanaka prince
shanaka prince

Reputation: 624

I faced this issue. Following these methods I was able to resolve the issue. enter image description here

type and enter

 npm install ajv@latest ajv-keywords@latest

Issue fixed, enter image description here

Upvotes: 19

ankur sanadhya
ankur sanadhya

Reputation: 41

Remove your node_modules and package-lock.json file and run:

npm cache clear -f

Than reload or restart your code editor and run:

npm ls ajv
npm install

if this command throw error than try with

npm install --legacy-peer-deps    

Upvotes: 4

Nanthika S
Nanthika S

Reputation: 11

Cannot find module 'ajv/dist/compile/codegen' Require stack:

  • E:\react projects\signup\signupform\node_modules\ajv-keywords\dist\definitions\typeof.js
  • E:\react projects\signup\signupform\node_modules\ajv-keywords\dist\keywords\typeof.js
  • E:\react projects\signup\signupform\node_modules\ajv-keywords\dist\keywords\index.js
  • E:\react projects\signup\signupform\node_modules\ajv-keywords\dist\index.js
  • E:\react projects\signup\signupform\node_modules\schema-utils\dist\validate.js
  • E:\react projects\signup\signupform\node_modules\schema-utils\dist\index.js
  • E:\react projects\signup\signupform\node_modules\webpack-dev-server\lib\Server.js
  • E:\react projects\signup\signupform\node_modules\react-scripts\scripts\start.js

npm ls ajv
npm install --save-dev ajv@^8

The above code works for me. Thanks!

Upvotes: 1

Mina
Mina

Reputation: 17604

First, you need to run npm ls ajv to output the required ajv version, and the output should be similar to

└─┬ [email protected]
  ├─┬ @eslint/[email protected]
  │ └── [email protected] deduped
  └── [email protected]

In this example, you need to install version 6.12.6

npm install --save-dev ajv@^6.12.6

Upvotes: 2

tomski999
tomski999

Reputation: 31

npm ls ajv
npm install --save-dev ajv@^8 

This worked for me. Thanks!

Upvotes: 3

Praveen Mishra
Praveen Mishra

Reputation: 11

Add "ajv": "^7" in package.json. Will work. enter image description here

Upvotes: 1

Ross
Ross

Reputation: 333

This recently occurred for me and I have legacy-peer-deps=true in my .npmrc file and I removed that and deleted my node_modules and package-lock.json and it all worked after that

Upvotes: 4

StephenD
StephenD

Reputation: 4142

I found that my package-lock.json file was imposing constraints that meant npm couldn't sort things out.

Firstly, I used npm ls ajv very helpful in illustrating where the dependencies were coming from (thanks @Greg Trevellick).

The solution for me, possibly a little drastic, was to remove the package-lock.json file and the node_modules directory and reinstall.

rm -rf package-lock.json node_modules
npm install

Upvotes: 15

hakima maarouf
hakima maarouf

Reputation: 2340

I had the same issue when I used JHipster, which I solved by running this command

npm install --save-dev ajv@^7 

Thanks to this answer

Upvotes: 167

huncyrus
huncyrus

Reputation: 658

I just hit the same error several times recently. In my case the error was based on ajv-keywords and ajv-formats plugin incompatibility with node js 8 and 12 (legacy project).

To analyse the problem, you can always use the npm ls ajv command, to see, which module try to use something incompatible.

Personally, I spent days to figure out the right combination for ajv schema, node and ajv plugins to make them work together properly. (In my case, I used ajv 6.4.x, what I had to downgrade to 6.12, then I used [email protected] and [email protected] which I had to dowgnrade to 3.0 and 1.4)

Upvotes: 6

Related Questions