create-react-app: Unknown option: base.configFile error when running tests
Note from Maintainers
This is reportedly an issue with npm, as you will find below.
Please install Yarn as it’s reportedly correctly hoisting packages, preventing this error.
If you’d like to continue using npm
, run npm ls babel-core
and remove offending packages that are relying on 6.x. Additionally, file a bug report with npm.
Is this a bug report?
Yes
Did you try recovering your dependencies?
Yes npm --version 6.4.1
Which terms did you search for in User Guide?
jest, test, babel, Unknown option: base.configFile
Environment
Environment: OS: macOS 10.14 Node: 8.10.0 Yarn: 1.6.0 npm: 6.4.1 Watchman: 4.9.0 Xcode: Xcode 10.0 Build version 10A255 Android Studio: Not Found
Packages: (wanted => installed) react: ^16.4.2 => 16.5.2 react-dom: ^16.4.2 => 16.5.2 react-scripts: 2.0.3 => 2.0.3
Steps to Reproduce
- Migrate from create-react-app v1.1.5 following the guide at https://github.com/facebook/create-react-app/releases
- Run the dev server and verify the app works correctly (
npm start
) - Run all tests with
npm test
followed bya
Expected Behavior
Tests should run and complete
Actual Behavior
I get the following error on every test
Test suite failed to run
ReferenceError: [BABEL] {redacted}/src/setupTests.js: Unknown option: base.configFile. Check out http://babeljs.io/docs/usage/options/ for more information about options.
A common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:
Invalid:
`{ presets: [{option: value}] }`
Valid:
`{ presets: [['presetName', {option: value}]] }`
For more detailed information on preset configuration, please see https://babeljs.io/docs/en/plugins#pluginpresets-options.
at Logger.error (node_modules/babel-core/lib/transformation/file/logger.js:41:11)
at OptionManager.mergeOptions (node_modules/babel-core/lib/transformation/file/options/option-manager.js:226:20)
at OptionManager.init (node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
at File.initOptions (node_modules/babel-core/lib/transformation/file/index.js:212:65)
at new File (node_modules/babel-core/lib/transformation/file/index.js:135:24)
at Pipeline.transform (node_modules/babel-core/lib/transformation/pipeline.js:46:16)
my setupTests.js
file contains the following
import 'react-testing-library/cleanup-after-each';
import 'jest-dom/extend-expect';
Adding them to a fresh app doesn’t cause an issue.
Reproducible Demo
This is an internal project, but I’ll work to see if I can narrow it down at all and reproduce in a fresh install. So far I haven’t figured it out. I’m putting this issue up in the meantime to see if anyone else runs into it while migrating to v2. It also popped up at https://github.com/facebook/create-react-app/issues/5103#issuecomment-425722592, but clearing the node modules / lock / &c didn’t help, nor did upgrading to node v10.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 4
- Comments: 58 (11 by maintainers)
Commits related to this issue
- Changed travis ci to use yarn as issue with npm and create-react-app. https://github.com/facebook/create-react-app/issues/5259 — committed to deadlybyte/cm-speed-reader by deadlybyte 6 years ago
@JaccoGoris Good to hear that! I also found that explicitly installing the bridge package with
npm install -D babel-core@7.0.0-bridge.0
also fixes the issue without uninstalling jest-junit.So I think there are 2 methods that you can try to fix this issue.
package-lock.json
,node_modules
, and re-install packages.babel-core@7.0.0-bridge.0
package ( preferably into your devDependencies ).I recommend running
npm ls babel-core
to figure out which package is causing problem inside your dependency tree first.Hi, @JaccoGoris I cloned your repo and got the same config error. At first I thought it could be node issue so used 6.14.4, 7.10.1, but all failed.
I had the same issue with my repo and I found that the issue could be from babel-core still using 6.26.3 for some packages so I compared the dependency tree of both my project and yours.
$ npm ls babel-core
My project:
Your project:
I found that on my project, babel-core@7.0.0-bridge.0 is on the top level of the dependency tree, above any other subtrees that uses babel 6.26.3.
So I did following and npm test worked like a charm.
And the dependency tree of babel-core should look like following when you run
npm ls babel-core
:Hope this helps.
Edit: seems like explicitly installing
babel-core@7.0.0-bridge.0
also solves the issue. And make sure you clear jest cache before re-trying. With jest cache every subsequent test will succeed$ npm install -D babel-core@7.0.0-bridge.0
npm ls babel-core
will show following:npm ls babel-core
accused other libraries of being dependent on earlier versions of babel-core.yarn install
worked. Definitely a problem with npm.I was also able to fix this issue by deleting package-lock.json and node_modules folder and running
npm install
again.I had to replace
"babel-core": "^6.26.3"
to"babel-core": "7.0.0-bridge.0"
in my package.json to make it works.@JeffBaumgardt I’m not sure I follow how this is a problem with Jest. The install works perfectly fine when using Yarn, and in some cases when you get npm to behave in certain ways. This issue definitely lies on npm’s side.
Can someone please install Yarn, use Yarn instead of npm, and see if that fixes the problem?
I had the same issue, using “react-scripts”: “^1.1.5” solved the problem.
If you delete
package-lock.json
andnode_modules
and the problem still won’t go away after a fresh install, double checkpackage.json
for an older explicitbabel-core
entry (mine had “^6.26.0” for some reason). You can remove it for Babel 7 since that became a dependency ofreact-scripts
. Then go through the delete/reinstall steps again.@arnvol Oh yeah I know but in my case, I figured out I could go without jest-junit and it was much easier to just remove it than to add the babel bridge 😃
@jambyung thanks a lot! 2. method worked.
https://github.com/JaccoGoris/jest-cra-app here’s a link to a small fresh project with the repro. hope this helps!
I have the same issue, even after nuking my
node_modules
andpackage.lock
which info can I help you guys with to help work this out?Nothing new to bring to the table, but I’m having the same issue.
I was repeatedly having this problem yesterday, even with the above workaround. I added the dependencies one by one back today and was able to add them back all in without incident, so who knows what npm was having trouble with.
I had the same issue, and I’m using the same
setupTests.js
file, though removing this file has no effect on the outcome.I was able to get rid of this error by deleting package-lock and reinstalling.