Correções orientadas a dados
Ative o dart fix para migrar código em mudanças incompatíveis de pacotes do pub.
Como mantenedor de um pacote, modificar ou descontinuar APIs públicas pode quebrar o código existente dos seus usuários. Para ajudar seus usuários a atualizar sem problemas, você pode fornecer correções orientadas a dados (data-driven fixes).
Correções orientadas a dados são regras de migração declarativas
armazenadas diretamente dentro do seu pacote.
Depois que os usuários atualizam para uma versão mais nova do seu pacote,
eles podem aplicar essas migrações com o dart fix
ou com as correções rápidas da IDE.
Ativar correções orientadas a dados no seu pacote
#Para fornecer migrações automatizadas para o seu pacote, siga estes passos.
1. Adicione um arquivo de dados de correção
#Adicione um arquivo chamado fix_data.yaml no diretório lib/ do seu pacote:
-
my_package/
lib/
- fix_data.yaml
- my_package.dart
- pubspec.yaml
Se você tiver muitas correções,
pode dividi-las em vários arquivos dentro do diretório lib/fix_data/.
2. Defina transformações de API
#
No fix_data.yaml, especifique a versão do formato (version: 1)
e uma lista transforms.
Cada transformação descreve o elemento da API que mudou
e as alterações a serem aplicadas.
Por exemplo, se você renomear oldMethod() para newMethod() na classe MyClass:
version: 1
transforms:
- title: 'Rename oldMethod to newMethod'
date: 2026-09-18
element:
uris: ['my_package.dart']
method: 'oldMethod'
inClass: 'MyClass'
changes:
- kind: 'rename'
newName: 'newMethod'
-
date: uma data no formatoYYYY-MM-DDindicando quando a mudança foi introduzida. -
uris: uma lista de URIs de bibliotecas que exportam a API, relativas ao diretóriolib/, como'my_package.dart'.
Testar suas correções
#Para garantir que suas regras de migração funcionem como esperado, configure pares de arquivos de teste e arquivos golden que contenham o código esperado depois de aplicar as migrações.
1. Configure um diretório test_fixes
#
Crie um diretório test_fixes/ na raiz do seu pacote:
-
my_package/
lib/
- fix_data.yaml
test_fixes/
- my_api.dart
- my_api.dart.expect
- pubspec.yaml
my_api.dart: código escrito para a API antiga.my_api.dart.expect: o código esperado depois de aplicar odart fix.
Por exemplo, emparelhe seus arquivos de teste da seguinte forma:
import 'package:my_package/my_package.dart';
void main() {
MyClass().oldMethod();
}
import 'package:my_package/my_package.dart';
void main() {
MyClass().newMethod();
}
2. Execute os testes
#Na raiz do seu pacote, execute o dart fix com --compare-to-golden:
dart fix test_fixes --compare-to-golden
Se a saída corresponder ao seu arquivo .expect, o comando termina com o código 0.
Se houver diferença, ele exibe um diff e termina com um código diferente de zero,
o que o torna ideal para suítes de testes de CI.
Saiba mais
#Para saber mais sobre todos os tipos de mudança suportados (como modificações de parâmetros e declarações substituídas), condições e templates de código, veja a especificação de Data-driven Fixes.
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Página atualizada pela última vez em 2026-11-12. Ver código-fonte ou relatar um problema.
Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.