Dart 如何从web应用程序的lib文件夹导入库?
我的文件夹结构如下所示:Dart 如何从web应用程序的lib文件夹导入库?,dart,dart-pub,Dart,Dart Pub,我的文件夹结构如下所示: lib\ my_library.dart web\ index.html main.dart pubspec.yaml 在main.dart中,我正在导入my_library.dart(顶部有library my_library),方法如下: import '../lib/my_library.dart'; 这个很好用。然而,拥有这样一条相对的路径感觉有点脆弱。我在文章中读到,我可能可以使用import'package:blah';它说: 当
lib\
my_library.dart
web\
index.html
main.dart
pubspec.yaml
在main.dart
中,我正在导入my_library.dart
(顶部有library my_library
),方法如下:
import '../lib/my_library.dart';
这个很好用。然而,拥有这样一条相对的路径感觉有点脆弱。我在文章中读到,我可能可以使用import'package:blah'
;它说:
当您从自己的包中使用库时,即使是src中的代码,您仍然可以(而且应该)使用“package:”来导入它们
因此,我尝试将代码更改为:
import 'package:my_library.dart';
然而,在Chrome开发编辑器中,我得到:
目标或URI不存在:“包:grid\u data.dart”
在Dartium,我得到:
获取http://127.0.0.1:51792/MyProject/web/packages/my_library.dart 404(未找到)
从项目中的其他dart文件导入我的
lib
文件夹的正确方法是什么?您缺少包名
import'package:my_project/my_library.dart';
导入语句中的package:
部分引用了myu项目包中的packages文件夹(包含pubspec.yaml
的文件夹)。导入语句的其余部分是要导入的文件的路径。
您可以在DartEditor或文件管理器中浏览此软件包文件夹中的文件夹和文件,以查看文件的组织方式。
此文件夹还包含一个名为my_project
的符号链接,它指向您的my_project/lib
文件夹。Doh!现在我在包中查看时似乎有点明显:)您应该知道,这在HTML中的工作方式不同。没有包:
。您需要导航到软件包顶部文件夹,然后向下浏览软件包
文件夹。从web/index.html
这将是。/packages/my_project/my_library.css
(不要将package:
与package*s*/
混合使用;这很有意义(因为一个是浏览器解释的路径,另一个是Dart导入的东西!)Dart在构建时解析(发布服务/发布构建)HTML由浏览器解析。