Приложение командной строки Dart в Windows, не может импортировать пакеты

Я нахожусь на Windows 10, и я следую этому руководству: https://www.dartlang.org/docs/tutorials/cmdline/

Тем не менее, кажется, что он не может использовать пакеты, как показано ниже. Я что-то упустил или это известная проблема в Windows? Я установил дротик с помощью choco, и он добавил местоположение дротика на мой путь.

Мне удалось заставить его работать, скопировав соединение пакетов (возможно, символическую ссылку или ярлык?), Которое WebStorm создал для какого-то проекта, и вставив его рядом с этим файлом дротика. Но я не думаю, что это то, что мы должны делать.

Как мы можем убедиться, что приложения командной строки dart в Windows могут использовать пакеты? Чего не хватает в учебной ссылке, которую я дал выше?

C:\Development\Dartish\tmp>dir
 Volume in drive C is HDD
 Volume Serial Number is DC07-D177

 Directory of C:\Development\Dartish\tmp

06/01/2016  03:28 PM    <DIR>          .
06/01/2016  03:28 PM    <DIR>          ..
06/01/2016  03:33 PM             2,063 dcat.dart
               1 File(s)          2,063 bytes
               2 Dir(s)  74,771,554,304 bytes free

C:\Development\Dartish\tmp>dart dcat.dart -n quotes.txt
Unhandled exception:
Could not import "package:args/args.dart" from "file:///C:/Development/Dartish/tmp/dcat.dart": Could not resolve a package location for base at file:///C:/Development/Dartish/tmp/dcat.dart
#0      _asyncLoadErrorCallback (dart:_builtin:162)
#1      _asyncLoadError (dart:_builtin:584)
#2      _loadPackage (dart:_builtin:625)
#3      _loadPackage.<anonymous closure> (dart:_builtin:641)
#4      _handlePackagesReply (dart:_builtin:482)
#5      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)

C:\Development\Dartish\tmp>

1 ответ

Решение

Вам определенно не нужно вручную копировать символические ссылки или соединения.

Если вы бежите pub get или же pub upgrade из каталога, который содержит pubspec.yaml файл или из WebStorm, тогда все эти соединения должны быть созданы для вас и не должны быть изменены каким-либо образом вручную.

Вам нужен файл pubspec.yaml в tmp каталог

name: some_name
dependencies:
  args: any # any is discouraged but should work in this case

бежать pub get после того, как файл был создан

dcat.dart должен быть в tmp/bin

Тогда беги от tmp каталог

dart bin/dcart.dart -n quotes.txt
Другие вопросы по тегам