首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么` `pub install`一直在`web`的所有子目录下创建`packages`链接?

为什么` `pub install`一直在`web`的所有子目录下创建`packages`链接?
EN

Stack Overflow用户
提问于 2013-07-14 19:33:14
回答 1查看 220关注 0票数 3

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

代码语言:javascript
复制
├── 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

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

我不明白为什么pub会为我创建它们,有什么方法可以禁用它吗?我不需要它们,因为当我在IDEA Dart插件中运行build命令时,它会报告错误,因为它不能正确处理它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-16 23:16:18

当Dart看到像这样的导入时:

代码语言:javascript
复制
import 'package:foo/foo.dart';

它将其翻译为:

代码语言:javascript
复制
import '<url of your entrypoint>/packages/foo/foo.dart';

所以,假设你的应用程序的入口点在:

代码语言:javascript
复制
myapp/web/app/main.dart

如果它有一个"package:“import,就像上面一样,它会把它重新映射到:

代码语言:javascript
复制
import 'myapp/web/app/packages/foo/foo.dart';

这意味着Dart要能够找到foo.dartapp中需要有一个包含foo/foo.dartpackages目录。pub的一部分工作就是为你设置它。

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

有关此here的更多详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17639004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档