3

アプリに相対パスの依存関係を追加することができました

name: myapp
description: A sample app
dependencies:
  mylib:
    path: ../mylib

そしてそれを私のソースコードにインポートします

import 'package:mylib/mylib.dart';

ただし、「mylib」という名前はライブラリ パッケージ pubspec から取得され、それを変更したい場合 (たとえば「mynewlib」)、どこでも名前を変更する必要があります (pubspec と dart ソース コード)。

また、同じ名前のパッケージが 2 つあるのを防ぎます (確かに奇妙ですが、人々が pub.dartlang.org に入れる内容を制御することはできません)。私がやりたいことは次のようなものです

name: myapp
description: A sample app
dependencies:
  mylib:
    path: ../mylib
    name: mynewlib

ソースコードに含まれています

import 'package:mynewlib/mylib.dart';

ただし、適切な構文と、それが可能かどうかがわかりません。(テスト用のサンプルコードはこちら: https://github.com/alextekartik/dart-test/tree/master/lib_test )。ここでは、ライブラリ名ではなくパッケージ名について話していることに注意してください (パッケージに mylib という名前を付けると混乱する可能性があります)。

4

2 に答える 2

2

パッケージ自体に別の名前を定義する方法はありません (私の知る限り、もしあれば、私も興味があります)。

ただし、回避策として、再ラップすることができます。たとえば、2 つの「mylib」パッケージがあるとします。

新しいライブラリ アプリケーション「mylib1」を作成します。そこで、最初の「mylib」をインポートし、.xml を使用して再エクスポートしexportます。もう一方の「mylib」に対して、別のライブラリ アプリケーション「mylib2」を作成します。次に、同じアプリケーションで使用するさまざまなパッケージ名があります。

はい、ちょっと厄介ですが、他に良い方法がない限り...

于 2013-05-29T08:31:12.373 に答える
0

インポート時の名前の競合は、次の方法で解決できます。

import 'package:mylib/mylib.dart' as Foo;

これにより、ライブラリ API にアクセスするための最上位の名前が作成されます。

Foo.bar();
于 2013-05-28T18:26:12.627 に答える