@sentry/bundler-plugins pulls @sentry/cli into consumers that only import ./babel-plugin
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 52/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- nodejs, typescript
- Domínio
- build-system, developer-experience
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- TypeScript
- Estrelas
- 8.7k
- Forks
- 1.9k
- Merge médio
- 1d 16h
- PRs com merge (30d)
- 576
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de getsentry/sentry-javascript
-
Browser Bug Next.js Traces Waiting for: Product Owner
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
getsentry/sentry-javascript#24672 · 1 comentário ·
-
javascript
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
getsentry/sentry-javascript#24200 · 2 comentários ·
-
javascript Task
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
getsentry/sentry-javascript#24134 · 1 comentário ·
-
Cloudflare Workers javascript Tests
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
getsentry/sentry-javascript#24051 · 1 comentário ·
-
Bug Bun javascript
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 92/100
getsentry/sentry-javascript#24045 · 1 comentário ·
Todas as issues de getsentry/sentry-javascript
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
bcgov/bc-wallet-mobile#4761 · 1 comentário ·
-
external-issue to-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
-
area-deployment area-integrations triage:bot-seen
Dificuldade 2/5 Meio dia Facilidade para iniciantes 86/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
-
refactor
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100