3

我有一个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会为我创建它们,有没有办法禁用它?我不想要它们,因为当我build在我的 IDEA Dart 插件中运行命令时,它会报告错误,因为它无法正确处理它们。

4

1 回答 1

0

当 Dart 看到如下导入时:

import 'package:foo/foo.dart';

它将其翻译为:

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

因此,假设您的应用程序的入口点位于:

myapp/web/app/main.dart

如果它有一个“包:”导入,就像上面一样,它将重新映射到:

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

这意味着为了让 Dart 能够找到foo.dart,内部需要有一个packages目录app,其中包含foo/foo.dart. pub 的部分工作是为您设置它。

这绝对不是使用 Dart 和 pub 最好的部分。到处散布符号链接很恶心,但它解决了语言对我们施加的限制。随着时间的推移,我们希望不再需要创建这些符号链接。

更多细节在这里

于 2013-07-16T15:16:18.110 回答