рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрджрдо рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрдХреНрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реБрдП рд╕реНрдкрдВрджрди рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рд╕рд╛рдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рднреА рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рд╣рдо рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдлреНрд▓рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд╣рд╛рдВ рдХреБрдЫ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдУрд╡рд░-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреА рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рддреЛ рдкрд╣рд▓рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рдерд╛ рдХрд┐ рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рдореЗрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдиреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде 2 рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛: get_it рдФрд░ рдХреАрд╡реА ред рдЬреИрд╕рд╛ рдХрд┐ get_it
рдПрдХ рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░ рдирд┐рдХрд▓рд╛ (рдФрд░ рдореИрдВ рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ), рдореИрдВ рдХреАрд╡реА рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рдЬреЛ рдЕрдзрд┐рдХ рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдПрдХ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдорд┐рд▓рд╛ рд╣реИ: inject.dart ред рдпрд╣ рдбреИрдЧрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдХрд╛рдлреА рдкреНрд░реЗрд░рд┐рдд рд╣реИ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЕрдиреНрдп рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдирд╡реАрдирддрдо рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЦреЛрджрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред
рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрджреНрдпрдкрд┐ рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА Google GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдпрд╣ Google рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдИ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ:
рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ (рдбреЗрд╡рд▓рдкрд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди) рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ Google рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЖрдВрддрд░рд┐рдХ рднрдВрдбрд╛рд░ рд╕реЗ рдЦреБрд▓реА-рдЦрдЯреНрдЯреА рд╣реИред рдЬреИрд╕реЗ рд╣рдо рдЗрд╕ рд╕рдордп рдмрдЧреНрд╕ рдпрд╛ рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВред
рдлрд┐рд░ рднреА рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЕрднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдерд╛рдкрдирд╛
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреЛрдИ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИ , рд╣рдореЗрдВ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЗрд╕реЗ git рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░ vendor
рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ:
git submodule add https://github.com/google/inject.dart
рдФрд░ рдЕрдм рд╣рдо рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ pubspec.yaml
рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
dependencies: // other dependencies here inject: path: ./vendor/inject.dart/package/inject dev_dependencies: // other dev_dependencies here build_runner: ^1.0.0 inject_generator: path: ./vendor/inject.dart/package/inject_generator
рдкреНрд░рдпреЛрдЧ
рдбреАрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд╣рдо рдЖрдорддреМрд░ рдкрд░ рдХреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ? рдЪрд▓реЛ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ:
рдареЛрд╕ рд╡рд░реНрдЧ рдЗрдВрдЬреЗрдХреНрд╢рди
рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
import 'package:inject/inject.dart'; @provide class StepService { // implementation }
рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реНрдкрдВрджрди рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
@provide class SomeWidget extends StatelessWidget { final StepService _service; SomeWidget(this._service); }
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрдВрдЬреЗрдХреНрд╢рди
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рд░ рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ:
abstract class UserRepository { Future<List<User>> allUsers(); } class FirestoreUserRepository implements UserRepository { @override Future<List<User>> allUsers() { // implementation } }
рдФрд░ рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
import 'package:inject/inject.dart'; @module class UsersServices { @provide UserRepository userRepository() => FirestoreUserRepository(); }
рдкреНрд░рджрд╛рддрд╛рдУрдВ
рдпрджрд┐ рд╣рдореЗрдВ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдкреНрд░рджрд╛рддрд╛, рдЬреЛ рд╣рдореЗрдВ рд╣рд░ рдмрд╛рд░ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЧрд╛? рдпрд╛ рдЕрдЧрд░ рд╣рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдЗрд╕реЗ рди рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдкрд╛рдпрд╛ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдкреНрд░рд▓реЗрдЦрди рдирд╣реАрдВ рд╣реИ) рдФрд░ рди рд╣реА рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдЖрд╡реГрддреНрддрд┐ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╣рдо рднреА рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕рд╣рд╛рдпрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
typedef Provider<T> = T Function();
рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
@provide class SomeWidget extends StatelessWidget { final Provider<StepService> _service; SomeWidget(this._service); void _someFunction() { final service = _service(); // use service } }
рдЕрд╕рд┐рд╕реНрдЯреЗрдб рдЗрдВрдЬреЗрдХреНрд╢рди
рдХреЗрд╡рд▓ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЬреНрдЮрд╛рдд рддрд░реНрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рд░рдЦрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рдХрд╛рд░рдЦрд╛рдирд╛ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╕рднреА рд╕рдВрдХрд▓рди-рд╕рдордп рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рд░рдирдЯрд╛рдЗрдо рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рд░рдЦрд╛рдирд╛ рд╡рд┐рдзрд┐ рдЬреЛ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдЧреАред
рд╕рд┐рдВрдЧрд▓рдЯрди, рдХреНрд╡рд╛рд▓рд┐рдлрд╛рдпрд░ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЗрдВрдЬреЗрдХреНрд╢рди
рд╣рд╛рдБ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрд╕ рд╕рдм рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реИред
рдЗрд╕реЗ рдкрд╣рдирдирд╛
рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдЪрд░рдг рдПрдХ рдЗрдВрдЬреЗрдХреНрдЯрд░ (рдбреИрдЧрд░ рд╕реЗ рдЙрд░реНрдл тАЛтАЛрдШрдЯрдХ) рдмрдирд╛рдирд╛ рд╣реИ, рдЬреИрд╕реЗ:
import 'main.inject.dart' as g; @Injector(const [UsersServices, DateResultsServices]) abstract class Main { @provide MyApp get app; static Future<Main> create( UsersServices usersModule, DateResultsServices dateResultsModule, ) async { return await g.Main$Injector.create( usersModule, dateResultsModule, ); } }
рдпрд╣рд╛рдВ UserServices
рдФрд░ DateResultsServices
рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, MyApp
рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рдореВрд▓ рд╡рд┐рдЬреЗрдЯ рд╣реИ, рдФрд░ main.inject.dart
рдПрдХ рдСрдЯреЛ-рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рд╣реИ (рдЗрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдЕрдзрд┐рдХ)ред
рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
void main() async { var container = await Main.create( UsersServices(), DateResultsServices(), ); runApp(container.app); }
рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рдЬреИрд╕реЗ рд╣реА рдХреЛрдб рдкреАрдврд╝реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд░рдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
flutter packages pub run build_runner build
рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ рджреЗрдЦреЗрдВ:
flutter packages pub run build_runner watch
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдг рд╣реИ: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдб cache
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдлрд╝реНрд▓рдЯрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдЧрддрд┐ рдореЗрдВ рдПрдХ рдХрд╛рдо рд╣реИ)ред рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде inject_generator.build.yaml
рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:
builders: inject_generator: target: ":inject_generator" import: "package:inject_generator/inject_generator.dart" builder_factories: - "summarizeBuilder" - "generateBuilder" build_extensions: ".dart": - ".inject.summary" - ".inject.dart" auto_apply: dependents build_to: source
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд╕рд╛рдордЧреНрд░реА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдлрд╝рд╛рдЗрд▓ vendor/inject.dart/package/inject_generator/build.yaml
рдПрдХ рд▓рд╛рдЗрди рдХреЛ рдЫреЛрдбрд╝рдХрд░: build_to: cache
рдХреЛ build_to: source
рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдм рд╣рдо build_runner
рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ (рдФрд░ рдпрджрд┐ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣рд▓ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ рддреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ) рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдлрд╝реНрд▓рдЯрд░ рдмрд┐рд▓реНрдб рдХреЛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд▓рд╛рдн
рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рднреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреИрдЧрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЕрдиреБрднрд╡ рд╣реИ, рддреЛ inject
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдЧрд╛ред