У меня есть простой проект дарт, который имеет один исполняемый файл в папке bin (test.dart). Я активировал его при активации dart global, и теперь я могу запустить его напрямую, просто набрав имя этого исполняемого файла.Глобальный запуск Dart pub не может разрешить имя сценария
Внутри этого файла дротика я хотел бы знать путь к этому сценарию. В основном сейчас я просто печатать что-то вроде этого:
print('1: ' + Platform.script.toString());
print('2: ' + Platform.script.path);
print('3: ' + Platform.executable);
print('4: ' + Platform.packageRoot);
print('5: ' + Platform.resolvedExecutable);
Когда я запускаю его напрямую:
test
или пабе:
pub global run test
или даже с названием пакета:
pub global run test:test
Я всегда получаю s AME результат:
1: http://localhost:53783/test.dart
2: /test.dart
3: E:\apps\dart-sdk\bin\dart
4:
5: E:\apps\dart-sdk\bin\dart.exe
Проблема здесь в том, что я не могу получить абсолютный путь к файлу test.dart.
Когда я бегу это так:
dart /path/to/project/bin/test.dart
Я получаю то, что мне нужно:
1: file:///E:/projects/dart/test/bin/test.dart
2: /E:/projects/dart/test/bin/test.dart
3: dart
4:
5: E:\apps\dart-sdk\bin\dart.exe
Есть ли способ, как получить абсолютный путь для сценария, который в настоящее время работает, независимо от того, как он был выполнен?
Смотрите также: https://github.com/dart-lang/dart_style/blob/154fecd4b686da2ca9a27166a9b17b599c0bf018/test/utils.dart#L24 –
Спасибо за помощь, но это только заставляет меня относительный путь, который в моем случае недостаточно. – x3derr8