You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dart中导入本地创建的包?附项目结构示例

如何调用同级目录下functions包的函数

没问题,我来一步步教你搞定这个事儿:

先明确你的项目结构

两个文件夹处于同一层级目录下:

.
├── contact_book/  # 主应用
│   ├── bin
│   │   └── contact_book.dart
│   ├── contact_book.iml
│   ├── lib
│   │   ├── address.dart
│   │   ├── email.dart
│   │   ├── field.dart
│   │   ├── functions.dart
│   │   ├── person.dart
│   │   └── phone_number.dart
│   ├── pubspec.lock
│   └── pubspec.yaml
└── functions/  # 独立包
    ├── bin
    │   └── lib
    │       └── functions.dart
    ├── functions.iml
    ├── pubspec.lock
    └── pubspec.yaml

步骤1:给主应用添加包依赖

首先得让contact_book这个主应用知道functions包的存在。打开contact_book/pubspec.yaml,找到dependencies部分,添加相对路径的依赖:

dependencies:
  # 保留你原本的其他依赖,比如flutter或其他第三方包
  functions:
    path: ../functions

添加完之后,打开终端进入contact_book目录,执行命令拉取依赖:

cd contact_book
dart pub get

(如果是Flutter项目就用flutter pub get)

步骤2:调整functions包的目录结构(重要!)

看你的结构,functions包的functions.dart放在了bin/lib下面,这不符合Dart包的标准结构——Dart会默认从lib目录加载包的代码,所以你得把functions/bin/lib/functions.dart移动到functions/lib/functions.dart,也就是把lib目录直接放在functions根目录下,这样Dart才能正确识别这个文件是包的一部分。

步骤3:在主应用中导入并调用函数

现在就可以在contact_book的代码里导入并调用函数了。比如在contact_book/bin/contact_book.dart里:

// 用package:包名/文件路径的方式导入
import 'package:functions/functions.dart';

void main() {
  // 假设你的functions.dart里有个叫calculate的函数,直接调用就行
  var result = calculate(10, 20);
  print(result);
}

注意:这里的functions是你在functions/pubspec.yaml里定义的name字段值,一定要确保两者一致,不然会报错哦!

内容的提问来源于stack exchange,提问作者ThinkDigital

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:35:49