26

(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.

Micessien
  • 431
  • 1
  • 4
  • 7
  • 3
    The problem seems to be in mini-css-extract-plugin somewhere between version 2.4.3 and 2.4.5. Reverting mini-css-extract-plugin to 2.4.2 fixes it for now. npm i mini-css-extract-plugin@2.4.2 --save-exact – Ted Chirvasiu Dec 06 '21 at 10:54

3 Answers3

37

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

hakima maarouf
  • 1,010
  • 1
  • 9
  • 26
7

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
StephenD
  • 3,662
  • 1
  • 19
  • 28
6

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 ajv-keywords@3.5.1 and ajv-formats@1.5.1 which I had to dowgnrade to 3.0 and 1.4)

huncyrus
  • 648
  • 8
  • 18