Windows上的Dart命令行应用程序无法导入包

时间:2016-06-01 12:41:23

标签: command-line dart packages

我在Windows 10上,并且我正在学习本教程:https://www.dartlang.org/docs/tutorials/cmdline/

但是,它似乎无法按照以下输出使用包。我错过了什么,或者这是Windows上的一个已知问题?我使用choco安装了飞镖,它在我的路径中添加了飞镖的位置。

我能够通过复制WebStorm为某个项目创建并将其粘贴到此dart文件旁边的包交汇点(符号链接或快捷方式?)来使其工作。但我不认为这是我们应该做的事情。

我们如何确保Windows中的dart命令行应用程序可以使用包?我在上面给出的教程链接中缺少什么?

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 个答案:

答案 0 :(得分:5)

您绝对不需要手动复制符号链接或联结。

如果您从包含pub get文件的目录或从WebStorm中运行pub upgradepubspec.yaml,则应为您创建所有这些联结,不应在任何联系中修改手动方式。

您需要tmp目录中的pubspec.yaml文件

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