Дарт игнорировать зависимость?
Как я могу игнорировать зависимость в проекте?
Моя настройка проекта:
Проект A: зависит от Angular2 и зависит от фонда
Основа проекта: зависит от Redstone_mapper_mongo
Проблема в том, что я хочу использовать angular2 в своем проекте A, который зависит от моего Project Foundation. Однако в Project Foundation используются монго Redstone Mapper, но Angular2 и монго Redstone Mapper не работают вместе.
Вопрос:
Так что в моем основании что-то вроде этого. Могу ли я просто игнорировать эти @Field(), @NotEmpty и импорт как-то в Project A? Так что в Project A отлично работает angular? Следовательно, Redstone Mapper Mongo не должен загружаться в Project A. Но как я могу это сделать?
import 'package:redstone_mapper/mapper.dart';
class Address {
@Field()
@NotEmpty()
String street;
@Field()
@NotEmpty()
String city;
}
[Обновить]
У меня есть эти зависимости в моем проекте А сейчас. Я добавил code_transformers: ^0.5.1
Проект А pubspec.yaml
dependencies:
angular: "^4.0.0+2"
angular_forms: "^1.0.0"
foundation:
path: ../foundation
dependency_overrides:
code_transformers: ^0.5.1
dev_dependencies:
angular_test: ^1.0.0
browser: ^0.10.0
dart_to_js_script_rewriter: ^1.0.1
test: ^0.12.30
transformers:
- angular:
entry_points:
- web/main.dart
- test/**_test.dart
- test/pub_serve:
$include: test/**_test.dart
- dart_to_js_script_rewriter
Фонд pubspec.yaml
dependencies:
intl: "^0.15.2"
http: "^0.11.3+16"
great_circle_distance: "^1.0.1"
redstone_mapper_mongo: "0.2.0-beta.1"
jaguar_serializer: "^0.5.1"
dev_dependencies:
browser: "^0.10.0+2"
dart_to_js_script_rewriter: "^1.0.3"
transformers:
- dart_to_js_script_rewriter
2 ответа
В проекте Fondation я добавил локальную зависимость моей собственной пустой реализации.
redstone_mapper_mongo:
path: ../redstone_mapper_mongo
И в этой пустой реализации аннотации Field и NotEmpty только что объявлены.
library redstone_mapper;
class Field {
const Field();
}
class NotEmpty {
const NotEmpty();
}
Таким образом, теперь возможно, что Project A использует локальный вариант и Angular2 без каких-либо проблем. И без создания второго мира модельных объектов.
В моем проекте B я использовал зависимость_overrides с реальной версией redstone_mapper_mongo, поэтому аннотации @Field и @Empty используют реальную реализацию redstone_mapper_mongo. И все теперь отлично работает.
dependency_overrides:
redstone_mapper_mongo: "0.2.0-beta.1"
В проекте Angular добавление
dependency_overrides:
code_transformers: ^0.5.1
analyzer: 0.30.0+4
должен это исправить