[英]Import dart file outside lib directory
为了让这个问题有意义,我将首先解释我当前的项目结构。 对于我工作的公司,我创建了一个平台,可以为我们拥有的每个客户快速构建和定制应用程序。 因此该项目使用 2 个存储库。
1) 应用程序库
此存储库包含应用程序的所有可自定义文件。 基本上就是没有lib和test目录的整个flutter项目。
2)核心存储库
为了使应用程序正常运行,核心存储库已加载到应用程序存储库中。 (这包含所有 .dart 文件)。 我们这样做是因为如果我们对核心进行更改,它会通过对核心执行简单的 git pull 在我们创建的所有应用程序中进行更新。
现在是我无法弄清楚的部分。 我们现在有一个客户想要在应用程序中使用自定义功能。 我们无法再次使用此功能,因此我想将该段代码添加到应用程序存储库中。 这是文件结构(仅显示需要的内容)
项目
- 资产
- customLib(客户定制工作的文件,应用程序仓库的一部分)
- lib(此目录中的所有文件都来自核心存储库)
- 测试(此目录中的所有文件都来自核心存储库)
- pubspec.yaml
在我正在加载的核心应用程序中的一个文件中。
这是文件 /lib/Library/ModuleRouter.dart
像这样加载它: import '../../customLib/customLibs.dart';
我尝试什么并不重要,但是当我超出放置 main.dart 的范围时,根本找不到代码。 虽然文件存在。
这是我从编译器得到的错误:
Compiler message:
Error: Invalid package URI 'package:/customLib/customLibs.dart':
Invalid argument (packageUri): Package URIs must not start with a '/': Instance of '_SimpleUri'.
lib/Library/ModuleRouter.dart:25:8: Error: Not found: 'package:/customLib/customLibs.dart'
import '../../customLib/customLibs.dart';
很抱歉这篇长文章,但我想解释整个项目以更好地理解当前项目。
我希望有人能帮助我解决这个问题。
亲切的问候,
凯文沃尔特
从lib/
外部导入文件不应该工作。 这会阻止将包发布到pub.dartlang.org,因为在添加到依赖项时只会下载lib/
和bin/
。
你可以做的是创建一个新的包,甚至可以位于另一个包的目录(例如my_proj/example/example1
)或项目之外,然后将其作为依赖项添加到主项目并导入文件从包中使用包导入,例如import "package:example1/example1.dart"
。
除了示例之外,我不鼓励嵌套包。
将密切相关的包作为兄弟姐妹通常是更好的方法。
也可以看看
接受的答案是正确的答案。
就我而言,我仍然需要导入一个文件。 (仅用于调试目的)
import 'file:///Users/uesr_name/Desktop/flutterPlugin/flutterPlugin/lib/file.dart';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.