Lint 2.0으로 마이그레이션하는 3단계

5604 단어 flutter
Flutter 3.0은 Lint 2.0과 함께 소개됩니다. Flutter 3.0 이후에 생성된 프로젝트의 경우 자동으로 lint 2.0을 사용하지만 이전에 생성된 프로젝트의 경우 수동으로 마이그레이션해야 합니다.

1. dev 종속성에 flutter_lints 패키지 추가




flutter pub add flutter_lints --dev


2. analysis_options.yaml을 루트 수준에 추가




# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.

# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml

linter:
 # The lint rules applied to this project can be customized in the
 # section below to disable rules from the `package:flutter_lints/flutter.yaml`
 # included above or to enable additional rules. A list of all available lints
 # and their documentation is published at
 # https://dart-lang.github.io/linter/lints/index.html.
 #
 # Instead of disabling a lint rule for the entire project in the
 # section below, it can also be suppressed for a single line of code
 # or a specific dart file by using the `// ignore: name_of_lint` and
 # `// ignore_for_file: name_of_lint` syntax on the line or in the file
 # producing the lint.
 rules:
   # avoid_print: false  # Uncomment to disable the `avoid_print` rule
   # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options


3. 보고된 문제 수정



명령 수정



문서에 따르면 대부분의 문제는 다음을 실행하여 해결할 수 있습니다.

dart fix --apply


IDE 수정



명령을 수정하기 어려운 사람들을 위해 IDE는 대부분의 문제를 수정하는 데 도움이 될 수 있습니다.





수동 수정



가장 자주 발생하는 문제는 Avoid using private types in public APIs.입니다.

@override
_MyWidgetState createState() => _MyWidgetState();


대부분은 State 클래스와 관련이 있습니다. 최신document에서:

Subclasses should override this method to return a newly created instance of their associated State subclass:



@override
State<MyWidget> createState() => _MyWidgetState();


내 패키지에서 가장 많이 받은 또 다른 문제는 Publishable packages can't have 'path' dependencies.입니다.



내 경우에는 오류가 발생하는 예제 프로젝트입니다. 게시할 수 없기 때문에 문제를 해결하기 위해 publish_to: none를 추가했습니다.

참조:



Introducing package:flutter_lints

내용이 마음에 드셨다면 지원해주세요🍖


연결🍻


좋은 웹페이지 즐겨찾기