backstage/backstage

Peer Dependencies in New Backstage Apps

Open

#31.446 aperta il 16 ott 2025

Vedi su GitHub
 (6 commenti) (1 reazione) (0 assegnatari)TypeScript (5277 fork)batch import
good first issuepriority:contrib-welcometype:bug

Metriche repository

Star
 (26.101 star)
Metriche merge PR
 (Merge medio 15g) (121 PR mergiate in 30 g)

Descrizione

📜 Issue Labels

  • Please familiarize yourself with the issue labels used in this project: LABELS.md

🔎 Search Terms

backstage peer-dependency webpack backstage-cli

🗃️ Project Area

Unknown

🔗 External Integration

N/A

📝 Description & Context

Currently, with @backstage/create-app@0.7.5 even a newly created application runs into a multitude of peer-dependency issues:

The issue with material UI is of course already being worked on, but other common peretrators from what I saw are:

  • backstage-cli has a peer dependency on webpack
  • @backstage/plugin-scaffolder-node-test-utils which has dependencies on react, react-dom, and react-router-dom
➤ YN0000: · Yarn 4.4.1
➤ YN0000: ┌ Resolution step
➤ YN0085: │ + @backstage/app-defaults@npm:1.7.1, @backstage/backend-defaults@npm:0.13.0, @backstage/catalog-model@npm:1.7.5, @backstage/cli@npm:0.34.4, @backstage/config@npm:1.3.5, @backstage/core-app-api@npm:1.19.1, and 2896 more.
➤ YN0000: └ Completed in 3s 33ms
➤ YN0000: ┌ Post-resolution validation
➤ YN0060: │ @testing-library/react is listed by your project with version 14.3.1 (pc9eb9), which doesn't satisfy what @backstage/test-utils requests (^16.0.0).
➤ YN0060: │ react is listed by your project with version 18.3.1 (pd98da), which doesn't satisfy what @material-ui/core and other dependencies request (but they have non-overlapping ranges!).
➤ YN0060: │ react-dom is listed by your project with version 18.3.1 (pfa800), which doesn't satisfy what @material-ui/core and other dependencies request (but they have non-overlapping ranges!).
➤ YN0002: │ app@workspace:packages/app doesn't provide @types/react (pceee1), requested by @backstage/app-defaults and other dependencies.
➤ YN0002: │ app@workspace:packages/app doesn't provide webpack (p299d9), requested by @backstage/cli.
➤ YN0002: │ backend@workspace:packages/backend doesn't provide webpack (p00f29), requested by @backstage/cli.
➤ YN0002: │ root@workspace:. doesn't provide webpack (p40c38), requested by @backstage/cli.
➤ YN0086: │ Some peer dependencies are incorrectly met by your project; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code.
➤ YN0086: │ Some peer dependencies are incorrectly met by dependencies; run yarn explain peer-requirements for details.
➤ YN0000: └ Completed

👍 Expected Behavior

The default install shouldn't have warnings outside of material UI (separate issue). Or there should be clear guidance on what is ok.

Some time back I played around with more strict dependency isolation and backstage had a lot of reliance on undeclared dependencies that other parts pulled in. And things like @backstage/plugin-scaffolder-node-test-utils which depends on react even though I couldn't see any usage, pulling react into every single scaffolder plugin if you don't want warnings.

📦 Reproduction Repo

No response

🥾 Reproduction steps

  1. run npx @backstage/create-app@0.7.5
  2. run yarn install

Have you read the Code of Conduct?

Are you willing to submit PR?

Yes, but I would like some more guidance

Guida contributor