Skip to content

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

Closed

Description

@mattfysh

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

Activity

  1. gaearon commented on Nov 3, 2017

    @gaearon
    Contributor

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

  2. mattfysh commented on Nov 3, 2017

    @mattfysh
    Author

    @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! 🚀

  3. dariocravero commented on Dec 2, 2017

    @dariocravero
    Contributor

    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

  4. mattfysh commented on Dec 4, 2017

    @mattfysh
    Author

    @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?

  5. dariocravero commented on Dec 4, 2017

    @dariocravero
    Contributor

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

  6. gaearon commented on Jan 8, 2018

    @gaearon
    Contributor

    Seems like a duplicate of #3031.

  7. locked and limited conversation to collaborators on Jan 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions