Skip to content

[Bug?]: yarn create redwood-app fails using yarn 3 #8164

@jtoar

Description

@jtoar

What's not working?

My global version of yarn is the latest (3.5 at this time). I prefer it to yarn 1 because it's faster and maintained, and now that corepack is a thing it's very easy to enable.

That means when I run yarn create redwood-app, the version of yarn running the (now undocumented) create command is 3.5, not 1.22.19, or whatever the latest version of the v1 release line is.

This leads to a problem during the "Install node modules" step:

dom@evaM1 ~/p/redwood> yarn create redwood-app redwood-app
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed in 1s 273ms
➤ YN0000: ┌ Fetch step
➤ YN0000: └ Completed
➤ YN0000: ┌ Link step
➤ YN0000: │ ESM support for PnP uses the experimental loader API and is therefore experimental
➤ YN0000: └ Completed
➤ YN0000: Done with warnings in 1s 401ms

------------------------------------------------------------------
                🌲⚡️ Welcome to RedwoodJS! ⚡️🌲
------------------------------------------------------------------
✔ Compatibility checks passed
✔ Select your preferred coding language · TypeScript
✔ Do you want to initialize a git repo? · no / Yes
✔ Project files created
┌ ⚠ Error: Couldn't install node modules ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                                                                                                                                                           │
│   We could not install node modules via 'yarn install'. Please see below for the full error message.                                                                                                                                      │
│                                                                                                                                                                                                                                           │
│   Error: Command failed with exit code 1: yarn install                                                                                                                                                                                    │
│   ➤ YN0000: ┌ Resolution step                                                                                                                                                                                                             │
│   ➤ YN0061: │ stable@npm:0.1.8 is deprecated: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN:                                                              │
│   https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility                                                                                                                       │
│   ➤ YN0032: │ fsevents@npm:2.3.2: Implicit dependencies on node-gyp are discouraged                                                                                                                                                       │
│   ➤ YN0061: │ chokidar@npm:2.1.8 is deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies                                                                                │
│   ➤ YN0061: │ fsevents@npm:1.2.13 is deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2                                                                                                       │
│   ➤ YN0061: │ source-map-resolve@npm:0.5.3 is deprecated: See https://github.com/lydell/source-map-resolve#deprecated                                                                                                                     │
│   ➤ YN0061: │ querystring@npm:0.2.0 is deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.                                                                                         │
│   ➤ YN0032: │ nan@npm:2.17.0: Implicit dependencies on node-gyp are discouraged                                                                                                                                                           │
│   ➤ YN0061: │ resolve-url@npm:0.2.1 is deprecated: https://github.com/lydell/resolve-url#deprecated                                                                                                                                       │
│   ➤ YN0061: │ source-map-url@npm:0.4.1 is deprecated: See https://github.com/lydell/source-map-url#deprecated                                                                                                                             │
│   ➤ YN0061: │ urix@npm:0.1.0 is deprecated: Please see https://github.com/lydell/urix#deprecated                                                                                                                                          │
│   ➤ YN0061: │ @npmcli/move-file@npm:2.0.1 is deprecated: This functionality has been moved to @npmcli/fs                                                                                                                                  │
│   ➤ YN0032: │ evp_bytestokey@npm:1.0.3: Implicit dependencies on node-gyp are discouraged                                                                                                                                                 │
│   ➤ YN0061: │ sane@npm:4.1.0 is deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added                                                                              │
│   ➤ YN0061: │ trim@npm:0.0.1 is deprecated: Use String.prototype.trim() instead                                                                                                                                                           │
│   ➤ YN0061: │ @npmcli/move-file@npm:1.1.2 is deprecated: This functionality has been moved to @npmcli/fs                                                                                                                                  │
│   ➤ YN0061: │ uuid@npm:3.4.0 is deprecated: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.   │
│   ➤ YN0032: │ @parcel/watcher@npm:2.1.0: Implicit dependencies on node-gyp are discouraged                                                                                                                                                │
│   ➤ YN0032: │ node-addon-api@npm:3.2.1: Implicit dependencies on node-gyp are discouraged                                                                                                                                                 │
│   ➤ YN0002: │ @graphql-tools/graphql-tag-pluck@npm:7.5.2 [e7660] doesn't provide @babel/core (p68360), requested by @babel/plugin-syntax-import-assertions                                                                                │
│   ➤ YN0002: │ @redwoodjs/api-server@npm:5.0.1 doesn't provide @babel/core (pdc87f), requested by @babel/plugin-transform-runtime                                                                                                          │
│   ➤ YN0002: │ @redwoodjs/cli@npm:5.0.1 doesn't provide react (pf9993), requested by @redwoodjs/prerender                                                                                                                                  │
│   ➤ YN0002: │ @redwoodjs/cli@npm:5.0.1 doesn't provide react-dom (p636a0), requested by @redwoodjs/prerender                                                                                                                              │
│   ➤ YN0002: │ @redwoodjs/core@npm:5.0.1 doesn't provide @babel/eslint-parser (p55302), requested by @babel/eslint-plugin                                                                                                                  │
│   ➤ YN0002: │ @redwoodjs/core@npm:5.0.1 doesn't provide eslint (p8d6e0), requested by @babel/eslint-plugin                                                                                                                                │
│   ➤ YN0002: │ @redwoodjs/eslint-config@npm:5.0.1 doesn't provide babel-plugin-module-resolver (p43ce4), requested by eslint-import-resolver-babel-module                                                                                  │
│   ➤ YN0002: │ @redwoodjs/internal@npm:5.0.1 doesn't provide @babel/core (pb9af5), requested by @babel/plugin-transform-typescript                                                                                                         │
│   ➤ YN0002: │ @redwoodjs/internal@npm:5.0.1 doesn't provide @babel/core (p2b9ec), requested by @babel/register                                                                                                                            │
│   ➤ YN0002: │ @redwoodjs/internal@npm:5.0.1 doesn't provide @babel/core (p7a5dd), requested by babel-plugin-graphql-tag                                                                                                                   │
│   ➤ YN0002: │ @redwoodjs/internal@npm:5.0.1 doesn't provide @babel/core (p7191e), requested by babel-plugin-polyfill-corejs3                                                                                                              │
│   ➤ YN0002: │ @redwoodjs/internal@npm:5.0.1 doesn't provide @types/node (p1a22a), requested by ts-node                                                                                                                                    │
│   ➤ YN0002: │ @redwoodjs/internal@npm:5.0.1 doesn't provide graphql-tag (pc179f), requested by @graphql-codegen/typescript-react-apollo                                                                                                   │
│   ➤ YN0002: │ @redwoodjs/internal@npm:5.0.1 doesn't provide graphql-tag (p3f699), requested by babel-plugin-graphql-tag                                                                                                                   │
│   ➤ YN0002: │ @redwoodjs/prerender@npm:5.0.1 [16c4a] doesn't provide prop-types (pb5323), requested by @redwoodjs/web                                                                                                                     │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide @babel/core (p4d1dc), requested by @storybook/addon-essentials                                                                                                                 │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide @babel/core (p43015), requested by babel-jest                                                                                                                                  │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide @babel/core (p19440), requested by babel-plugin-inline-react-svg                                                                                                               │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide @testing-library/dom (pb349e), requested by @testing-library/user-event                                                                                                        │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide prop-types (pf6e2d), requested by @redwoodjs/web                                                                                                                               │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react (pe50d1), requested by @redwoodjs/router                                                                                                                                 │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react (p05696), requested by @redwoodjs/web                                                                                                                                    │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react (p9f174), requested by @storybook/builder-webpack5                                                                                                                       │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react (pd2a92), requested by @storybook/manager-webpack5                                                                                                                       │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react (pffc87), requested by @storybook/react                                                                                                                                  │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react (p6644b), requested by @testing-library/react                                                                                                                            │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react-dom (p4cd8e), requested by @redwoodjs/router                                                                                                                             │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react-dom (pfdd21), requested by @redwoodjs/web                                                                                                                                │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react-dom (pbfa29), requested by @storybook/builder-webpack5                                                                                                                   │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react-dom (p644e1), requested by @storybook/manager-webpack5                                                                                                                   │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react-dom (p4754a), requested by @storybook/react                                                                                                                              │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide react-dom (pb60bf), requested by @testing-library/react                                                                                                                        │
│   ➤ YN0002: │ @redwoodjs/testing@npm:5.0.1 doesn't provide require-from-string (p31a21), requested by @storybook/react                                                                                                                    │
│   ➤ YN0002: │ @storybook/addon-docs@npm:6.5.17-alpha.0 [680c4] doesn't provide @babel/core (p84821), requested by @babel/preset-env                                                                                                       │
│   ➤ YN0002: │ @storybook/addon-docs@npm:6.5.17-alpha.0 [680c4] doesn't provide @babel/core (p51879), requested by @babel/plugin-transform-react-jsx                                                                                       │
│   ➤ YN0002: │ @storybook/addon-docs@npm:6.5.17-alpha.0 [680c4] doesn't provide @babel/core (p2006a), requested by babel-loader                                                                                                            │
│   ➤ YN0002: │ @storybook/addon-docs@npm:6.5.17-alpha.0 [680c4] doesn't provide webpack (pa8b4b), requested by babel-loader                                                                                                                │
│   ➤ YN0002: │ @storybook/docs-tools@npm:6.5.17-alpha.0 doesn't provide react (pabec6), requested by @storybook/store                                                                                                                      │
│   ➤ YN0002: │ @storybook/docs-tools@npm:6.5.17-alpha.0 doesn't provide react-dom (p7e5d2), requested by @storybook/store                                                                                                                  │
│   ➤ YN0002: │ @storybook/mdx1-csf@npm:0.0.1 doesn't provide @babel/core (pfc8fe), requested by @babel/preset-env                                                                                                                          │
│   ➤ YN0002: │ @storybook/telemetry@npm:6.5.17-alpha.0 doesn't provide react (pdc9aa), requested by @storybook/core-common                                                                                                                 │
│   ➤ YN0002: │ @storybook/telemetry@npm:6.5.17-alpha.0 doesn't provide react-dom (p45c00), requested by @storybook/core-common                                                                                                             │
│   ➤ YN0002: │ react-hot-toast@npm:2.4.0 [0686e] doesn't provide csstype (p9d39f), requested by goober                                                                                                                                     │
│   ➤ YN0002: │ react-hot-toast@npm:2.4.0 [3c661] doesn't provide csstype (p8e264), requested by goober                                                                                                                                     │
│   ➤ YN0002: │ react-hot-toast@npm:2.4.0 [74aa3] doesn't provide csstype (pba3e5), requested by goober                                                                                                                                     │
│   ➤ YN0002: │ web@workspace:web doesn't provide graphql (p442e9), requested by @redwoodjs/forms                                                                                                                                           │
│   ➤ YN0060: │ web@workspace:web provides react (pe96bb) with version 18.2.0, which doesn't satisfy what @redwoodjs/router and some of its descendants request                                                                             │
│   ➤ YN0060: │ web@workspace:web provides react-dom (p29bad) with version 18.2.0, which doesn't satisfy what @redwoodjs/router and some of its descendants request                                                                         │
│   ➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code                                                                           │
│   ➤ YN0000: └ Completed in 18s 357ms                                                                                                                                                                                                      │
│   ➤ YN0000: ┌ Fetch step                                                                                                                                                                                                                  │
│   ➤ YN0000: └ Completed in 1s 84ms                                                                                                                                                                                                        │
│   ➤ YN0000: ┌ Link step                                                                                                                                                                                                                   │
│   ➤ YN0007: │ core-js@npm:3.30.1 must be built because it never has been before or the last one failed                                                                                                                                    │
│   ➤ YN0007: │ esbuild@npm:0.17.18 must be built because it never has been before or the last one failed                                                                                                                                   │
│   ➤ YN0007: │ core-js-pure@npm:3.30.1 must be built because it never has been before or the last one failed                                                                                                                               │
│   ➤ YN0007: │ msw@npm:1.2.1 [680c4] must be built because it never has been before or the last one failed                                                                                                                                 │
│   ➤ YN0007: │ fsevents@patch:fsevents@npm%3A1.2.13#~builtin<compat/fsevents>::version=1.2.13&hash=d11327 must be built because it never has been before or the last one failed                                                            │
│   ➤ YN0007: │ @prisma/client@npm:4.13.0 [fef9c] must be built because it never has been before or the last one failed                                                                                                                     │
│   ➤ YN0007: │ @prisma/engines@npm:4.13.0 must be built because it never has been before or the last one failed                                                                                                                            │
│   ➤ YN0007: │ @parcel/watcher@npm:2.1.0 must be built because it never has been before or the last one failed                                                                                                                             │
│   ➤ YN0007: │ @apollo/protobufjs@npm:1.2.7 must be built because it never has been before or the last one failed                                                                                                                          │
│   ➤ YN0009: │ esbuild@npm:0.17.18 couldn't be built successfully (exit code 1, logs can be found here: /private/var/folders/dt/yks4v5m53k114qxgz6jh4pgw0000gn/T/xfs-e0ca41cb/build.log)                                                   │
│   ➤ YN0007: │ prisma@npm:4.13.0 must be built because it never has been before or the last one failed                                                                                                                                     │
│   ➤ YN0000: └ Completed in 13s 256ms                                                                                                                                                                                                      │
│   ➤ YN0000: Failed with errors in 32s 942ms                                                                                                                                                                                               │
│                                                                                                                                                                                                                                           │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

They important line is near the end:

│   ➤ YN0009: │ esbuild@npm:0.17.18 couldn't be built successfully (exit code 1, logs can be found here: /private/var/folders/dt/yks4v5m53k114qxgz6jh4pgw0000gn/T/xfs-e0ca41cb/build.log)                                                   │

YN0009 means yarn couldn't build a package (source: https://yarnpkg.com/advanced/error-codes/#yn0009---build_failed). Opening the log file there:

   1   │ # This file contains the result of Yarn building a package (esbuild@npm:0.17.18)
   2   │ # Script name: postinstall
   3   │ 
   4   │ node:internal/errors:867
   5   │   const err = new Error(message);
   6   │               ^
   7   │ 
   8   │ Error: Command failed: /Users/dom/.nvm/versions/node/v18.16.0/bin/node /Users/dom/prjcts/redwood/redwood-app/node_modules/esbuild/bin/esbuild --version
   9   │ node:internal/errors:490
  10   │     ErrorCaptureStackTrace(err);
  11   │     ^
  12   │ 
  13   │ TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension "" for /Users/dom/prjcts/redwood/redwood-app/node_modules/esbuild/bin/esbuild
  14   │     at new NodeError (node:internal/errors:399:5)
  15   │     at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:79:11)
  16   │     at defaultGetFormat (node:internal/modules/esm/get_format:121:38)
  17   │     at defaultLoad (node:internal/modules/esm/load:81:20)
  18   │     at nextLoad (node:internal/modules/esm/loader:163:28)
  19   │     at load$1 (file:///private/var/folders/dt/yks4v5m53k114qxgz6jh4pgw0000gn/T/xfs-8e80dfb0/dlx-22809/.pnp.loader.mjs:1455:12)
  20   │     at nextLoad (node:internal/modules/esm/loader:163:28)
  21   │     at ESMLoader.load (node:internal/modules/esm/loader:605:26)
  22   │     at ESMLoader.moduleProvider (node:internal/modules/esm/loader:457:22)
  23   │     at new ModuleJob (node:internal/modules/esm/module_job:64:26) {
  24   │   code: 'ERR_UNKNOWN_FILE_EXTENSION'
  25   │ }

Workarounds

  • cd into the directory and run yarn install and it should complete
  • change your global config (contributed by Rui): yarn config set nodeLinker "node-modules" -H, then try again and it should work

Related issues:

How do we reproduce the bug?

Make your global version of yarn v3. I do it via corepack:

corepack enable
corepack prepare [email protected] --activate
# confirm it's v3; go to your home directory or something, just outside a redwood app
cd ~
yarn --version

Then just run yarn create redwood-app and it should fail.

What's your environment? (If it applies)

n/a

Are you interested in working on this?

  • I'm interested in working on this

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug/confirmedWe have confirmed this is a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions