Using craco in new react project - what would cause this error ? (UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_VALUE]: ...)
Asked Answered
E

1

5

Summary

In creating a new project and attempting to use craco with it I've come across an error which I don't understand.

What I've got

The error looks like this ...

$ craco start
(node:125281) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_VALUE]: The argument 'id' must be a non-empty string. Received ''
    at Module.require (internal/modules/cjs/loader.js:1084:11)
    at require (internal/modules/cjs/helpers.js:73:18)
    at getConfigAsObject (/home/glaucon/src/20210416testB/my-app/node_modules/@craco/craco/lib/config.js:46:20)
    at loadCracoConfigAsync (/home/glaucon/src/20210416testB/my-app/node_modules/@craco/craco/lib/config.js:69:34)
    at Object.<anonymous> (/home/glaucon/src/20210416testB/my-app/node_modules/@craco/craco/scripts/start.js:22:1)
    at Module._compile (internal/modules/cjs/loader.js:1200:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
    at Module.load (internal/modules/cjs/loader.js:1049:32)
    at Function.Module._load (internal/modules/cjs/loader.js:937:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:125281) 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: 2)
(node:125281) [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.
Done in 1.06s.


What I've done

What I've done to get to that point is ...

$ yarn global remove create-react-app
$ mkdir 20210416testB
$ cd 20210416testB
$ npx create-react-app my-app
$ cd my-app/
$ yarn add @craco/craco

Amended package.json as follows ...

"scripts": {
-   "start": "react-scripts start",
+   "start": "craco start",
-   "build": "react-scripts build",
+   "build": "craco build"
-   "test": "react-scripts test",
+   "test": "craco test"
}

And then done

$ yarn start

At which point I got the error above so I

$ rm -rf ./node_modules/
$ yarn install
$ yarn start

But I still get the error above.

Would be grateful for any suggestions.

Execratory answered 15/4, 2021 at 22:32 Comment(2)
is the craco.config.js file in your root dir?Pasargadae
@Pasargadae - excellent , that was the problem. It's made perfectly clear on npmjs.com/package/@craco/craco#installation that it's necessary but somehow I missed it. Would you redo your comment as an answer so I can mark it correct for future readers ? Thanks again.Execratory
P
8

Do ensure that the craco.config.js file is in your root dir :)

Pasargadae answered 15/4, 2021 at 23:14 Comment(1)
Excellent, thanks. This was the cause of the problem, I had overlooked the directions to create the config file mentioned here npmjs.com/package/@craco/craco#installation . It's a shame that craco doesn't come up with a slightly more obvious error message in the absence of a config file but it's my fault for skimming the instructions. Thanks again.Execratory

© 2022 - 2024 — McMap. All rights reserved.