Skip to content

fix: pin @babel/standalone to 7.23.10 to restore app rendering - #1

Open
arthurtabbal wants to merge 2 commits into
noharm-ai:mainfrom
arthurtabbal:fix/babel-standalone-version
Open

fix: pin @babel/standalone to 7.23.10 to restore app rendering#1
arthurtabbal wants to merge 2 commits into
noharm-ai:mainfrom
arthurtabbal:fix/babel-standalone-version

Conversation

@arthurtabbal

Copy link
Copy Markdown

Problema

Versões recentes do @babel/standalone (pós 7.23.x) mudaram o output padrão para ESM, gerando import statements no código transpilado. Como o script é injetado como <script> comum (não-módulo), o browser rejeita com:

Uncaught SyntaxError: Failed to execute 'appendChild' on 'Node':
Cannot use import statement outside a module

Isso quebrava a app completamente — tela em branco tanto no GitHub Pages quanto localmente.

Fix

  • Pina @babel/standalone na versão 7.23.10, última antes da mudança de comportamento
  • Adiciona data-presets="react" no script tag para escopar o Babel só à transformação de JSX, sem transforms de módulos

Tech debt

Esta correção é um paliativo. O uso de Babel in-browser tem limitações conhecidas:

  • Baixa ~1MB do babel.min.js em cada carregamento
  • Transpilação acontece no browser do usuário a cada visita
  • Dependência frágil de comportamento de versão de CDN sem lock

Recomendação de longo prazo: migrar para um build step com Vite ou esbuild, compilando o JSX uma única vez no CI/CD antes do deploy. O GitHub Actions já existe no projeto e seria simples adicionar o build step.

Versions newer than 7.23.10 changed default output to ESM, generating
import statements that crash when injected as a plain <script> tag.
Also adds data-presets="react" to scope Babel to JSX-only transforms.

Tech debt: in-browser Babel transpilation should be replaced with a
proper build step (Vite/esbuild) to eliminate this fragility and
improve load performance (~1MB Babel bundle).

@marceloarocha marceloarocha left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pode aproveitar pra fixar as dependencias no package.json e adicionar o sfw no CI ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants