Can't use a CRA project inside Yarn Workspaces
See original GitHub issueIs this a bug report?
Yes
Can you also reproduce the problem with npm 4.x?
I am using npm 4.6.1 and its a yarn specific bug anyways.
Which terms did you search for in User Guide?
I simply searched the github repo for workspace
and yarn workspace
I didn’t see a relevant error message/issue.
Environment
node -v
: 8.4.0npm -v
: 4.6.1yarn --version
: 0.27.5npm ls react-scripts
: Empty (no scripts to use)
Then, specify:
- Operating system: OSX El Capitan 10.11.6
Steps to Reproduce
https://github.com/thomas-jeepe/err-demo
mkdir err-demo
cd err-demo
touch .yarnrc
echo "workspaces-experimental true" > .yarnrc
touch package.json
- Write
{
"name": "meme",
"version": "1.0.0",
"main": "index.js",
"private": true,
"workspaces": ["packages/*"]
}
to package.json
7. mkdir packages
8. cd packages
9. create-react-app test
Or: https://github.com/thomas-jeepe/err-demo/
Expected Behavior
create-react-app would use the tools installed at the workspace level.
Actual Behavior
Doesn’t find the tools and just complains:
Aborting installation.
Unexpected error. Please report it as a bug:
{ Error: Cannot find module '/Users/PenguinSoccer/code/js/err-demo/packages/test/node_modules/react-scripts/package.json'
at Function.Module._resolveFilename (module.js:489:15)
at Function.Module._load (module.js:439:25)
at Module.require (module.js:517:17)
at require (internal/module.js:11:18)
at checkNodeVersion (/Users/PenguinSoccer/.config/yarn/global/node_modules/create-react-app/createReactApp.js:476:23)
at getPackageName.then.then.then.packageName (/Users/PenguinSoccer/.config/yarn/global/node_modules/create-react-app/createReactApp.js:285:7)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7) code: 'MODULE_NOT_FOUND' }
Reproducible Demo
https://github.com/thomas-jeepe/err-demo/
So, just using regular logic, it seems that create-react-app is unaware about yarn workspaces, which install at the package level node_modules rather than for each individual folder in the workspace.
create-react-app goes for the folder’s node_modules when the node_modules are kept in the workspace root.
Although from my understanding, yarn attempts to link node_modules in each directory to the root workspace, so then I don’t know what the issue is.
Whether create-react-app should support yarn workspaces is up to you guys and low priority for me, since I probably won’t use it anyway (think its a cool project though 😃)
Issue Analytics
- State:
- Created 6 years ago
- Reactions:41
- Comments:20 (1 by maintainers)
Top GitHub Comments
Hi,
I’ve had this issue last month. Luckily a fix in yarn and a blog article had already been published https://yarnpkg.com/blog/2018/02/15/nohoist/
So the quick fix on my side was to update yarn to 1.4.2 or later then to add the following in the cra app’s package.json
or in the root package.json:
@fazouane-marouane I created a small repo that has an app and library under packages. The app is trying to use a React component from the library and I put the error in the readme. Maybe it’s as simple as I’m importing Test incorrectly in App.js or have ** incorrect in the workspace package.json. Thanks for any help with this.
https://github.com/MikeSuiter/cra-yarn-workspace