Как мне создать чистый пакет Dart для приложения Flutter?

#flutter

#flutter

Вопрос:

Я пытаюсь создать чистый пакет Dart для использования в моем приложении Flutter. Проблема в том, что при создании моего приложения в папке library создаются некоторые файлы, специфичные для Android и iOS. Интересно, это ошибка или известная функция?

Я создал проект с помощью команды:

 flutter create -t package mypackage
  

Например, сгенерированный файл GeneratedPluginRegistrant.java выглядит примерно так:

 package io.flutter.plugins;

import io.flutter.plugin.common.PluginRegistry;

/**
 * Generated file. Do not edit.
 */
public final class GeneratedPluginRegistrant {
  public static void registerWith(PluginRegistry registry) {
    if (alreadyRegisteredWith(registry)) {
      return;
    }
  }

  private static boolean alreadyRegisteredWith(PluginRegistry registry) {
    final String key = GeneratedPluginRegistrant.class.getCanonicalName();
    if (registry.hasPlugin(key)) {
      return true;
    }
    registry.registrarFor(key);
    return false;
  }
}
  

Могу ли я избежать создания этих файлов GeneratedPluginRegistrant.*? Если нет, должен ли я передавать их в систему управления версиями?

Ответ №1:

Для чистых пакетов dart вам нужно только одно: a pubspec.yaml с именем и ограничениями среды:

 name: my_package
environment:
  sdk: ">=2.0.0 <3.0.0"
  

Этого достаточно, чтобы добавить my_package в качестве зависимости к вашему проекту flutter:

 dependencies:
  my_package:
    path: ../path/to/my_package/folder
  

Ответ №2:

Вы можете сделать это с помощью командной строки:

  1. путь к pub должен быть задан в вашей переменной среды, например:

    C:UsersUserNameAppDataRoamingPubCachebin;

  2. pub global activate stagehand

  3. mkdir dart_project

  4. cd dart_project

  5. stagehand package-simple

Его генерация с помощью командной строки сгенерирует для вас немного кода, который даст вам представление о том, как следует управлять пакетом.

Вы можете использовать этот проект как зависимость в файле pubspec.yaml вашего проекта Flutter или Angular-Dart как:

 dependencies:
  dart_project:
    path: ../path/to/dart_project