74 lines
1.7 KiB
Text
74 lines
1.7 KiB
Text
---
|
|
type: rule
|
|
name: typescript-module-resolution
|
|
description: Padrão obrigatório de moduleResolution para todos os pacotes do monorepo Azteca
|
|
scope: global
|
|
trigger: file_match
|
|
globs:
|
|
- "**/tsconfig.json"
|
|
priority: alta
|
|
updatedAt: "2026-07-01"
|
|
---
|
|
|
|
# Regra: moduleResolution Padrão do Monorepo
|
|
|
|
## Contexto
|
|
|
|
O TypeScript 6.0 deprecia `moduleResolution: "node"` (alias de `"node10"`), que deixará de funcionar no TS 7.0 (erro TS5107). Todos os pacotes do ecossistema Azteca compilam via **tsup** ou **vite**, portanto devem usar o modo `bundler`.
|
|
|
|
## Regra
|
|
|
|
Todo `tsconfig.json` no monorepo **DEVE** usar:
|
|
|
|
```json
|
|
{
|
|
"compilerOptions": {
|
|
"moduleResolution": "bundler",
|
|
"module": "ESNext"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Alternativa `node16` — REJEITADA
|
|
|
|
A opção `node16` foi testada e rejeitada por ser excessivamente estrita com dependências externas que não declaram corretamente as fronteiras ESM/CJS (erro TS1479).
|
|
|
|
## Exemplos
|
|
|
|
```json
|
|
// ✅ Correto — modo bundler
|
|
{
|
|
"compilerOptions": {
|
|
"moduleResolution": "bundler",
|
|
"module": "ESNext"
|
|
}
|
|
}
|
|
|
|
// ❌ Incorreto — modo depreciado
|
|
{
|
|
"compilerOptions": {
|
|
"moduleResolution": "node"
|
|
}
|
|
}
|
|
|
|
// ❌ Incorreto — estrito demais para o ecossistema
|
|
{
|
|
"compilerOptions": {
|
|
"moduleResolution": "node16",
|
|
"module": "Node16"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Procedimento ao corrigir
|
|
|
|
Ao corrigir `moduleResolution` em um pacote, **varrer todos os `tsconfig.json` do monorepo** para garantir consistência. Não corrigir isoladamente.
|
|
|
|
## Impacto
|
|
|
|
Sem este padrão, o build falhará no TypeScript 7.0 com erro fatal TS5107. Já no TS 6.0 gera warnings de depreciação que poluem o output.
|
|
|
|
## Referências
|
|
|
|
- Memória Azteca: códigos 51, 52, 54
|
|
- Rule: `global/rules/tsconfig-ignore-deprecations`
|