Дарт игнорировать зависимость?

Как я могу игнорировать зависимость в проекте?

Моя настройка проекта:

Проект 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

должен это исправить

Другие вопросы по тегам