create-react-app: 'Failed to initialize watch plugin' when running tests for newly created app

Describe the bug

Running tests (using npm test) for a newly created app throws the error:

Error: Failed to initialize watch plugin "node_modules/jest-watch-typeahead/filename.js":

  ● Test suite failed to run

    file:///Users/dannyskoog/GIT/test-version-5/node_modules/jest-watch-typeahead/build/file_name_plugin/prompt.js:4
    import { PatternPrompt, printPatternCaret, printRestoredPatternCaret } from 'jest-watcher';
                            ^^^^^^^^^^^^^^^^^
    SyntaxError: Named export 'printPatternCaret' not found. The requested module 'jest-watcher' is a CommonJS module, which may not support all module.exports as named exports.
    CommonJS modules can always be imported via the default export, for example using:

    import pkg from 'jest-watcher';
    const { PatternPrompt, printPatternCaret, printRestoredPatternCaret } = pkg;

      at async requireOrImportModule (node_modules/jest-util/build/requireOrImportModule.js:65:32)
      at async watch (node_modules/@jest/core/build/watch.js:337:34)
      at async _run10000 (node_modules/@jest/core/build/cli/index.js:311:7)
      at async runCLI (node_modules/@jest/core/build/cli/index.js:173:3)

Did you try recovering your dependencies?

Yes

Which terms did you search for in User Guide?

https://create-react-app.dev/docs/troubleshooting/

Environment

node (via nvm): 14.15.4 npm (via nvm): 6.14.10 create-react-app: 5.0.0

Steps to reproduce

(Write your steps here:)

  1. npx create-react-app my-app --template typescript
  2. cd my-app
  3. npm test

Expected behavior

Tests should be executed

Actual behavior

An error is thrown before the watcher is set up and tests are ran

Workaround

Running npm i -D --exact jest-watch-typeahead@0.6.5 solves the problem (as suggested here https://github.com/facebook/create-react-app/issues/11043#issuecomment-942472592)

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Reactions: 124
  • Comments: 18 (1 by maintainers)

Commits related to this issue

Most upvoted comments

the comand

npm i -D --exact jest-watch-typeahead@0.6.5

work for me! thanks node version: 14.0.0 npm v6.14.4

Okay. So I believe I found out the actual root cause behind the issue. I will explain:

And I tried out using Node 14.17.0 for scaffolding a new app and then running the npm test script. It worked fine.

TL;DR; The react-scripts test command works with the following Node versions:

  • Major version 14 and minimum minor version 17 (^14.17.0)
  • Major version 16 (>=16.0.0)

@raix It would be nice to update https://github.com/facebook/create-react-app/blob/main/packages/react-scripts/package.json#L12 to ^14.17.0 || >=16.0.0

I scaffolded a few new apps using different versions of Node (via nvm). And then ran npm test Here are the results:

🔴 Error (Node 14.15.4 & Npm 6.14.10) 🔴 Error (Node 15.11.0 & Npm 7.6.0) ✅ Success (Node 16.13.1 & Npm 8.1.2)

So it seems quite clear that the issue is related to what Node version that is used and that the node engines section (here) isn’t accurate.

I had the same issue with Node 14.7.0 but it’s working fine with Node 16.1.0, on an intel mac book pro! The create-react-app script required at least Node 14 but it may not be enough.

Thanks @jbprat!

Yeah it’s clearly indicated here that Node 14 is supposed to be supported.

And if it’s of any worth - I’m also on a MacBook Pro.

@raix Thanks. Your steps seem equivalent.

Let me try to scaffold a few more apps + try different variations of Node.

Will report back once I’ve done so.

the command worked for me. Much thanks! npm i -D --exact jest-watch-typeahead@0.6.5 node version: 14.0.0 , npm v6.14.4

since react-script 5 was meant to support 14, and now you’re basically breaking that by saying you’ll only support 16, don’t you need to increment react-script to 6 now?