4

3 つのライブラリと 2 つのアプリを含むプロジェクトが必要であるとします。パブのドキュメントから、以下のような構造を選択しています。ただし、アプリは十分に異なっているため、独自のディレクトリを持っていることが望ましい. ( http://pub.dartlang.org/doc/#adding-a-dependency ) のドキュメントには、pubspec.yamlファイルを最上位に配置するよう記載されています。プロジェクトフォルダーの下のコンテキストで最上位ですか?

1 つの pubspec があり、それが/projectレベルにあり、libs と共有されている場合、アプリではなく libs のいずれかのみのユーザーが余分なパッケージ (good_stuff や big_stuff など) を不必要に必要とすることを意味しませんか?

/project
    /app
        /app1    (uses l1, package:good_stuff)
        /app2    (uses l1, l2, l3, package:big_stuff)
    /lib
        /l1
        /l2      (uses package:pathos/path.dart)
        /l3      (uses l1 and l2)
        /src
            /l1
            /l2
            /l3

したがって、この望ましいセットアップが与えられた場合、これらの依存関係を満たすために作成される pubspec の数と場所はどれくらいになるでしょうか。

4

1 に答える 1

5

パッケージ

ファイルをパッケージpubspec.yamlの最上位に配置する必要があります。Pub では、パッケージは自己完結型コードの最大単位であり、パッケージが単独で動作するために必要なすべてのライブラリ、実行可能ファイル、サンプル、ドキュメント、テスト、およびツールが含まれています。

Pub には、大まかに 2 種類のパッケージがあります。

  • ライブラリ パッケージは、事実上、従来の意味での単なるライブラリであり、他のパッケージで使用することを目的としています。
  • アプリケーション パッケージは、他のパッケージのコンシューマーであり、コマンド ライン、サーバー、Web、またはその他の場所で実行できるアプリケーションを定義します。

ライブラリ パッケージには実行可能ファイルが含まれている可能性があり、アプリケーション パッケージには他のアプリケーションで役立つ再利用可能なライブラリが含まれている可能性があるため、これらは緩やかな定義です。

一般に、個別に変更して再利用できるいくつかの個別のコンポーネントからプロジェクトを作成しようとします。これは、アプリケーションのすべての部分に対して 1 つのパッケージを作成するのとは対照的です。

あなたのプロジェクト

次の構造にすることをお勧めします。

/project
  /app1
    - pubspec.yaml
  /app2
    - pubspec.yaml
  /mechanics
    - pubspec.yaml
    /lib
      l1.dart
      l2.dart
      l3.dart
      /src
        ...

ここには、2 つのアプリケーション パッケージと 1 つのライブラリ パッケージがあります。

いくつかのメモ:

  • パスの依存関係mechanicsでパッケージを参照できます

  • このプロジェクト全体をまとめて保持することを期待しproject/ている場合 (たとえば、プロジェクトを販売している場合など) にのみ、トップ トップ レベルとして本当に必要です。app1app2project/

  • l1l2、およびl3それらが別々に十分に生きていけると思われる場合は、完全に独自のパッケージを作成できます。その場合は、それらをすべて独自のパッケージにします。

以下も参照してください。

于 2013-04-20T00:10:19.067 に答える