ディレクトリから追加のデータをロードするパッケージを作成しており、次のlib
ような方法でこのデータをロードする簡単な方法を提供したいと考えています。
const dataPath = 'mypackage/data/data.json';
initializeMyLibrary(dataPath).then((_) {
// library is ready
});
Intlパッケージで行われているのと同様に、2 つの別個のライブラリbrowser.dart
とを作成しました。standalone.dart
このデータを「ブラウザ」環境からロードするのは非常に簡単ですが、「スタンドアロン」環境になると、pub run
コマンドのせいでそれほど簡単ではありません。
スクリプトが simple で実行されている場合、dart:io.Platformとプロパティ$ dart myscript.dart
を使用してパッケージ パスを見つけることができます。 Platform.script
Platform.packageRoot
しかし、スクリプトが で実行されている場合、$ pub run tool/mytool
データをロードする正しい方法は次のようになります。
- pub run コマンドからスクリプトが実行されていることを検出する
- パブサーバーホストを見つける
- pub トランスフォーマーが存在する可能性があり、ファイル システムから直接データをロードできないため、このサーバーからデータをロードします。
また、ファイル システムから直接データをロードしたい場合でも、スクリプトを で実行するとpub run
、パスPlatform.script
が返され/mytool
ます。
では、スクリプトが実行されpub run
ていることを確認する方法と、pub サーバーのサーバー ホストを見つける方法はありますか?