Reputation: 930
(node:21216) UnhandledPromiseRejectionWarning: Error: Cannot find module 'ajv/dist/compile/codegen'
loader.js:815 Function.Module._resolveFilename internal/modules/cjs/loader.js:815:15
loader.js:667 Function.Module._load internal/modules/cjs/loader.js:667:27
loader.js:887 Module.require internal/modules/cjs/loader.js:887:19
helpers.js:74 require internal/modules/cjs/helpers.js:74:18
typeof.js:3 Object. [front]/[mini-css-extract-plugin]/[ajv-keywords]/dist/definitions/typeof.js:3:19
loader.js:999 Module._compile internal/modules/cjs/loader.js:999:30
loader.js:1027 Object.Module._extensions..js internal/modules/cjs/loader.js:1027:10
loader.js:863 Module.load internal/modules/cjs/loader.js:863:32
loader.js:708 Function.Module._load internal/modules/cjs/loader.js:708:14
loader.js:887 Module.require internal/modules/cjs/loader.js:887:19
(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
Reputation: 624
I faced this issue. Following these methods I was able to resolve the issue.
type and enter
npm install ajv@latest ajv-keywords@latest
Upvotes: 19
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
Reputation: 11
Cannot find module 'ajv/dist/compile/codegen' Require stack:
npm ls ajv
npm install --save-dev ajv@^8
The above code works for me. Thanks!
Upvotes: 1
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
Reputation: 31
npm ls ajv
npm install --save-dev ajv@^8
This worked for me. Thanks!
Upvotes: 3
Reputation: 11
Add "ajv": "^7" in package.json. Will work. enter image description here
Upvotes: 1
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
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
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
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