@sentry/bundler-plugins pulls @sentry/cli into consumers that only import ./babel-plugin
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 52/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- nodejs, typescript
- Domaine
- build-system, developer-experience
Piste de recherche
Start with the @sentry/bundler-plugins ./babel-plugin entry point and its component-annotation.js, constants.js, and experimental.js dependencies. Inspect how @sentry/cli is declared and which bundler integrations invoke it. Done means importing only ./babel-plugin no longer installs a duplicate release-upload CLI, while integrations that use the CLI still work; verify with a clean package-manager install and relevant tests.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
@sentry/bundler-plugins declares @sentry/cli as a hard dependency. Consumers that only import the ./babel-plugin entry point pay for a full sentry-cli install, including its platform binary, even though that entry point never invokes the CLI.
Impact
@sentry/react-native 8.21.0 migrated from @sentry/babel-plugin-component-annotate to @sentry/bundler-plugins/babel-plugin (getsentry/sentry-react-native#6501), because the old package is no longer published. It has exactly one import of the package:
// @sentry/react-native/dist/js/tools/sentryBabelTransformerUtils.js
const babel_plugin_1 = require("@sentry/bundler-plugins/babel-plugin");
The ./babel-plugin CJS entry is 20 KB and requires only ./component-annotation.js, ./constants.js and ./experimental.js. It never reaches sentry-cli.
Because @sentry/react-native 8.24.0 pins "@sentry/cli": "3.6.2" while @sentry/bundler-plugins 10.71.0 declares "@sentry/cli": "^2.58.6", package managers install two majors side by side. Measured in a real React Native app on macOS arm64 (Yarn 1.22.22):
| Size | |
|---|---|
@sentry/cli-darwin@3.6.2 (hoisted) |
27 MB |
@sentry/cli-darwin@2.58.6 (nested under @sentry/bundler-plugins) |
35 MB |
node_modulesgrew ~36 MB on the 8.18.0 -> 8.24.0 upgradeyarn.lockgrew 98 net lines, roughly 72 of which are the duplicated@sentry/clientry plus its eight platform packages
Every clean CI install now downloads both binaries.
Expected
Importing a babel plugin should not install a release-upload CLI.
Suggested fix
Any one of:
- publish the component-annotate babel plugin as a standalone package again
- move
@sentry/clito an optional or peer dependency, so only the bundler integrations that actually shell out to it require it - split the package so
./babel-pluginresolves without the upload machinery
Workaround
A package manager override pinning @sentry/cli to the version the SDK already uses:
"resolutions": { "@sentry/cli": "3.6.2" }
This removes the duplicate and reduces the lockfile growth from +98 to +26 lines, with no observed breakage, since the babel-plugin path never reaches the CLI.
Versions
@sentry/bundler-plugins: 10.71.0@sentry/react-native: 8.24.0react-native: 0.83.10
- Langage dominant
- TypeScript
- Étoiles
- 8.7k
- Forks
- 1.9k
- Merge moyen
- 1 j 16 h
- PR mergées (30 j)
- 576
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de getsentry/sentry-javascript
-
Browser Bug Next.js Traces Waiting for: Product Owner
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
getsentry/sentry-javascript#24672 · 1 commentaire ·
-
Flaky Test React Router Framework Spans Tests
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
getsentry/sentry-javascript#24348 · 1 commentaire ·
-
javascript
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
getsentry/sentry-javascript#24200 · 2 commentaires ·
-
javascript Task
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
getsentry/sentry-javascript#24134 · 1 commentaire ·
-
Cloudflare Workers javascript Tests
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
getsentry/sentry-javascript#24051 · 1 commentaire ·
Toutes les issues de getsentry/sentry-javascript
Issues similaires
-
bug(cli): hapi doctor inline-media prints a fabricated B:\ helper-script path in packaged installs Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
Crush Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
catppuccin/catppuccin#3125 ·
-
Add a SECURITY.md Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
ElementsProject/cln-application#167 · 1 commentaire · 1 réaction ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Quantco/pnpm-licenses#17 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100