在flutter中有没有办法把生成的文件放在单独的文件夹中?

问题描述 投票:0回答:2

在我的应用程序中,我使用 freezed 和 json_serializable。在我放置所有数据模型的文件夹中,有很多生成的文件,如

model.g.dart
model.freeezed.dart
。是否有可能将所有生成的文件移动到项目中的单独文件夹中,如
generated

flutter dart code-generation build-runner
2个回答
6
投票

根据 build_runner 文档

flutter pub run build_runner build --output <dirname>

flutter pub run build_runner build --output models:<directory name>

只输出models目录


0
投票

这是 stackoveflow 的工作示例:

基本上像这样创建build.yaml文件,它将在

generated
文件夹中生成文件:

targets:
  $default:
    builders:
      source_gen|combining_builder:
        generate_for:
          - lib/**.dart
        options:
          build_extensions:
            '^lib/{{}}.dart': 'lib/generated/{{}}.g.dart'
      freezed|freezed:
        enabled: true
        options:
          build_extensions:
            '^lib/{{}}.dart': 'lib/generated/{{}}.freezed.dart'

不要忘记将

generated
添加到
part
.

import 'package:freezed_annotation/freezed_annotation.dart';

part 'generated/person.g.dart';
part 'generated/person.freezed.dart';

@freezed
class Person with _$Person {
  const factory Person({
    required String firstName,
    required String lastName,
    required int age,
  }) = _Person;

  factory Person.fromJson(Map<String, Object?> json)
  => _$PersonFromJson(json);
}

© www.soinside.com 2019 - 2024. All rights reserved.