为什么`pub install`在`web`的所有子目录中继续创建`packages`链接?

时间:2013-07-14 11:33:14

标签: dart packages dart-pub

我有一个web目录,其中包含一些css和js文件:

├── bootstrap-wysiwyg
│   ├── index.html
│   ├── packages -> ../../packages
│   └── republish.sh
├── css
│   ├── bootstrap-combined.no-icons.min.css
│   ├── packages -> ../../packages
│   ├── prettify.css
│   └── screen.css
├── images
│   └── packages -> ../../packages
├── js
│   ├── bootstrap.min.js
│   ├── packages -> ../../packages
│   ├── prettify.js
│   └── prettify.js.1
├── lib
│   ├── font-awesome-3.2.1
│   └── packages -> ../../packages
└── packages -> ../packages

您可以看到packages目录的每个子目录中都有一个web链接。我删除了一次,但是当我运行pub install时会出现。

我无法理解为什么pub会为我创建它们,有没有办法禁用它?我不想要它们,因为当我在我的IDEA Dart插件中运行build命令时,它会报告错误,因为它无法正确处理它们。

1 个答案:

答案 0 :(得分:0)

当Dart看到导入时:

import 'package:foo/foo.dart';

它将其翻译为:

import '<url of your entrypoint>/packages/foo/foo.dart';

所以,请说你的应用程序的入口点在:

myapp/web/app/main.dart

如果有&#34;包裹:&#34;导入,如上所述,它将重新映射到:

import 'myapp/web/app/packages/foo/foo.dart';

这意味着要让Dart能够找到foo.dartpackages内的app目录必须包含foo/foo.dart。酒吧的一部分工作就是为你做好准备。

这绝对不是与Dart和pub合作的最好的部分。各地的符号链接都很严重,但它处理了语言对我们的限制。随着时间的推移,我们希望不再需要创建这些符号链接。

有关此here的详细信息。

相关问题