首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从其他项目导入dart代码

从其他项目导入dart代码
EN

Stack Overflow用户
提问于 2014-07-05 12:04:42
回答 1查看 600关注 0票数 2

**这个问题是编辑并清理了一些**

我有两个项目,我想使用另一个项目中的代码;我似乎很难将代码放在正确的目录结构中,以使导入语句正常工作。

这两个项目都是专门从Mac上的Dart编辑器创建和管理的,如果这有任何区别的话。

项目目录结构项目1:一个命令行应用程序,它包含我希望在以下目录结构中共享的代码:

代码语言:javascript
复制
/dart/command_line_app
    /lib
      shared_library.dart
    /bin
      command_line_app.dart

项目2:一个想要在shared_libary.dart中导入代码的web应用程序

代码语言:javascript
复制
/dart/web_application
    /packages
    /web
        web_application.dart

在文件shared_libary.dart中,我声明它是一个库,它可以创建一个简单的类,在实例化时提供输出:

代码语言:javascript
复制
library shared_library;

class ShareMe
{
  ShareMe()
  {
    print("Hello, ShareMe");
  }
}

这在command_line项目中编译和工作: command_line_app.dart有以下内容:

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

void main() {
  ShareMe shareMe = new ShareMe();

  print("Hello, World!");
}

这将导入代码运行,同时打印"Hello“和Hello。

问题,我想在web_application.dart中实例化ShareMe类。我认为我可以通过输入与我的command_line代码相同的导入语句来做到这一点:

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

但是,当我将相同的导入放到web_appliation中时,它会得到错误

代码语言:javascript
复制
Target of URI does not exist 'package:command_line_app/shared_library.dart'

其他我尝试过的,当我在Web_application上单击属性并选择项目引用时,我确信我已经解决了这个问题。

它会弹出一个窗口,允许我选择带有复选框的command_line_app,但是当我这样做时,我会得到一个错误:

代码语言:javascript
复制
Could not set the project description for 'web_application' because the project description file (.project) is out of sync with the file system.

不管那意味着什么。

当我cntrl-单击带下划线的错误并尝试Quick,它提供给我“解决依赖关系”,这听起来很有希望,但几秒钟后,它回来告诉我,

代码语言:javascript
复制
Pub get failed, [1] Resolving dependencies... (15.3s)
Could not find package command_line_app at https://pub.dartlang.org.
Depended on by:
- web_application 0.0.0

我希望这是明确的-呃,并给出了一个更好的洞察力,我正在努力做什么,我错过了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-05 12:09:52

需要添加的编辑

代码语言:javascript
复制
dependencies:
  command_line_app:
    path: ../command_line_app

web_application/pubspec.yaml中的依赖项。

编辑端

当您想使代码在不同的包中可重用时,应该将该代码放到该包的lib目录中,并使用import 'package:mypackage/myfile.dart';导入它。

您可能面临的另一个问题是,浏览器应用程序无法导入具有dart:io依赖关系的包。如果您想在命令行和浏览器应用程序之间重用代码,那么应该将它们移到另一个包my_shared_code的lib目录中,在该目录中只放置不依赖于dart:io (例如某些实体类)的代码,并从两个应用程序包(浏览器和命令行)导入这些代码。

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

https://stackoverflow.com/questions/24586239

复制
相关文章

相似问题

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