Skip to content

Cannot use CRA to create a new yarn workspace/package #3405

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
mattfysh opened this issue Nov 3, 2017 · 6 comments
Closed

Cannot use CRA to create a new yarn workspace/package #3405

mattfysh opened this issue Nov 3, 2017 · 6 comments

Comments

@mattfysh
Copy link

mattfysh commented Nov 3, 2017

Is this a bug report?

Yes

Can you also reproduce the problem with npm 4.x?

No

Which terms did you search for in User Guide?

  • "Yarn workspaces"
  • "hoisting"

Environment

  1. node -v: v8.7.0
  2. npm -v: 5.5.1
  3. yarn --version (if you use Yarn): 1.2.1
  4. npm ls react-scripts (if you haven’t ejected): N/A (happens on init)

Then, specify:

  1. Operating system: macOS Sierra v10.12.6
  2. Browser and version (if relevant):

Steps to Reproduce

(Write your steps here:)

  1. mkdir cra-issue && cd cra-issue
  2. create a package.json using this:
{
  "private": true,
  "workspaces": [
    "packages/*"
  ],
  "devDependencies": {
    "husky": "^0.14.3"
  }
}
  1. yarn
  2. create-react-app packages/app-a

Expected Behavior

A new CRA application to be initialized under packages/app-a

Actual Behavior

...
Aborting installation.
  Unexpected error. Please report it as a bug:
  { Error: Cannot find module '/Users/cra/Projects/sandbox/repro/packages/workspace-a/node_modules/react-scripts/package.json'
      at Function.Module._resolveFilename (module.js:527:15)
      at Function.Module._load (module.js:476:23)
      at Module.require (module.js:568:17)
      at require (internal/module.js:11:18)
      at checkNodeVersion (/Users/cra/.config/yarn/global/node_modules/create-react-app/createReactApp.js:488:23)
      at getPackageName.then.then.then.packageName (/Users/cra/.config/yarn/global/node_modules/create-react-app/createReactApp.js:295:7)
      at <anonymous>
      at process._tickCallback (internal/process/next_tick.js:188:7) code: 'MODULE_NOT_FOUND' }

  Deleting generated file... node_modules
  Deleting generated file... package.json
  Deleting workspace-a / from /Users/cra/Projects/sandbox/repro/packages
  Done.

Reproducible Demo

Use steps above

@gaearon
Copy link
Contributor

gaearon commented Nov 3, 2017

Yea, we should really figure out a Workspaces integration. Also as a solution to the "absolute imports" problem.

@mattfysh
Copy link
Author

mattfysh commented Nov 3, 2017

@gaearon I tried to use require.resolve within the current path.resolve but couldn't get it working... granted I only had a couple of minutes to try, so I may not have used it right... feels like it should be an easy fix though - to get the script to use node's require resolution algorithm.

PS. Thanks for the quick reply! 🚀

@dariocravero
Copy link
Contributor

dariocravero commented Dec 2, 2017

In case anyone is stuck with this and until the different issues are fixed, I made a little guide on how to use yarn workspaces with Create React App and Create React Native App (Expo) to share common code across. Hope you find it handy! https://learn.viewsdx.com/how-to-use-yarn-workspaces-with-create-react-app-and-create-react-native-app-expo-to-share-common-ea27bc4bad62 https://medium.com/viewsdx/how-to-use-yarn-workspaces-with-create-react-app-and-create-react-native-app-expo-to-share-common-ea27bc4bad62

@mattfysh
Copy link
Author

mattfysh commented Dec 4, 2017

@dariocravero - thats the workaround I've gone with, creating in a tmp location and copying into the yarn workspaces structure. In addition to removing node_modules, you may want to also remove yarn.lock as I believe with workspaces all package locks are managed in the top-level lockfile? I could be mistaken though, I came to this conclusion when running yarn outdated in the repo root and having outdated dependencies inside nested packages appearing in the output. @gaearon - does that sound right?

@dariocravero
Copy link
Contributor

That's a good point @mattfysh, thanks! Updated the guide :)

@gaearon
Copy link
Contributor

gaearon commented Jan 8, 2018

Seems like a duplicate of #3031.

@gaearon gaearon closed this as completed Jan 8, 2018
@lock lock bot locked and limited conversation to collaborators Jan 20, 2019
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Projects
None yet
Development

No branches or pull requests

3 participants