gpt4 book ai didi

dart - 在dart库中导入软件包时的Linter警告

转载 作者:行者123 更新时间:2023-12-03 02:57:42 25 4
gpt4 key购买 nike

我正在做一个大型Dart项目,其中包括一个Web前端以及几个自定义库。我们正在使用推荐的文件夹结构,如here所述。

my_app/
lib/
my_library1/
example/
lib/
my_library1.dart
my_library1.html
pubspec.yaml
...
web/
pubspec.yaml

而且我们在lib文件夹中有几个库,我们都将其导入到主pubspec.yaml中,如下所示:
dependencies:
my_library1:
path: lib/my_library1

一切正常,但是当我使用 pub build生成JS构建时,我收到大量有关如何正确为每个lib导入软件包的Linter警告。

例如,my_library1库在my_library1.html文件中具有聚合物导入,如下所示:
<link rel="import" href="../../packages/polymer/polymer.html">

警告如下:
[Warning from polymer (Linter) on my_app|lib/my_library1/lib/my_library1.html]:
line 1, column 1 of lib\my_library1\lib\my_library1.html: Invalid URL to reach to another package: ../../packages/polymer/polymer.html. Path reaching to other packages must first reach up all the way to the packages directory. For example, try changing the URL to: ../../../../packages/polymer/polymer.html. See http://goo.gl/5HPeuP#code_transformers_2 for details.
<link rel="import" href="../../packages/polymer/polymer.html">
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

现在,如果我将该行更改为他们的建议( ../../../../packages/polymer/polymer.html),则会收到此错误:
[Warning from polymer (Linter) on my_library1|lib/my_library1.html]:
line 1, column 1 of lib\my_library1.html: Invalid URL to reach to another package: ../../../../packages/polymer/polymer.html. Path reaching to other packages must first reach up all the way to the packages directory. For example, try changing the URL to: ../../packages/polymer/polymer.html. See http://goo.gl/5HPeuP#code_transformers_2 for details.
<link rel="import" href="../../../../packages/polymer/polymer.html">
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

所以不管我怎么做,都是错的。有趣的是,警告的源文件从 my_library1|lib\my_library1.html变为 my_app|lib\my_library1\lib\my_library1.html

这对任何人有意义吗?

顺便说一句,我一直在各种Dart网站( #1#2#3)上阅读这些东西,但无济于事。

我正在使用Dart 1.7.2(STABLE)和聚合物0.15.3 + 2

最佳答案

您的程序包中不得包含多个pubspec.yaml文件。 lib /文件夹应仅包含dart文件和其他 Assets ,例如html,js和css文件。例如,您可以按以下方式组织项目:

 my_app/
lib/
my_library1/
my_library1.dart
my_library1.html
...
web/
pubspec.yaml //you do not need to include my_library1 as a dependency here

此外,如果要在其他软件包中使用my_library1,则需要将其移至其自己的软件包中:
 my_library1/
example/
lib/
my_library1.dart
my_library1.html
pubspec.yaml
my_app/
lib/
...
web/
pubspec.yaml //you need to include my_library1 as a dependency here

无论哪种情况,my_library1.html都可以使用以下导入:
 <link rel="import" href="../../packages/polymer/polymer.html">

关于dart - 在dart库中导入软件包时的Linter警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27714414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com