当前位置: 首页 > 知识库问答 >
问题:

通过导入脚本来调用脚本的Dart脚本

韶景曜
2023-03-14

我有这样的设置:

├── bin
│   ├── all.dart
│   ├── details
│   │   ├── script1.dart
│   │   └── script2.dart
|   |    .....

所有.飞镖只是导入脚本1.飞镖和脚本2.dart并调用它们的主要。目标是在细节下有一堆可以单独运行的脚本。此外,我想要一个单独的 all.dart 脚本,可以一次运行所有脚本。这将使调试单个脚本更简单,但仍允许所有脚本运行。

all.dart

import 'details/script1.dart' as script1;
import 'details/script2.dart' as script2;

main() {
  script1.main();
  script2.main();
}

脚本1.飞镖

main() => print('script1 run');

脚本2.dart

main() => print('script2 run');

所以,这是工作,我看到运行时预期的打印语句all.dart但我有两个问题。

首先,我必须在详细信息下软链接包。显然pub不会将软件包软链接传播到子文件夹。这是预期的还是有解决方法?

其次,在第二个导入语句的点all.dart中标记了错误。分析器错误是:

The imported libraries 'script1.dart' and 'script2.dart' should not have the same name ''

所以我的猜测是,由于我正在导入其他脚本,就好像它们是库一样,并且由于它们没有库脚本[12];顶部的语句它们都具有相同的名称-空名称?

注意:最初我将所有这些都放在lib下,我可以将它们作为脚本运行,在命令行上指定合适的--Package-root,即使它们是带有main的库。但是为了调试,我需要在Dart Editor中运行,这就是我将它们移动到bin的原因。也许编辑器应该允许带有main的lib下的库作为脚本运行,因为它们可以在编辑器之外运行?脚本/库之间的实际差异似乎有点不必要(因为其他脚本语言允许文件两者兼而有之)。

我怎么清理这个?

共有1个答案

莘昊
2023-03-14

我不确定真正的问题是什么。

>

  • 如果库没有library语句,则使用空字符串作为名称。只需添加具有唯一名称的库语句即可解决此问题。

    向子目录添加符号链接解决了子目录中脚本的导入问题。我经常这样做。< br >在dartbug.com,人们多次提到符号链接应该完全消失,但我不知道这需要多长时间。

    我从来没有尝试过将脚本文件与main放在lib中,但它只是违反包布局约定,我想这就是为什么DartEditor不支持它的原因。

  •  类似资料:
    • 问题内容: 想通过一个简单的 sql 脚本(例如填充测试数据库)将文件插入到 BLOB 字段中。我知道如何通过代码做到这一点,但我找不到如何执行 sql 脚本本身。 我试图通过路径,即 但这失败了。 在代码中(例如 java),很容易创建一个 File 对象并将其传入,但是直接从 sql 脚本中,我被卡住了...... 任何想法? 问题答案: 为了测试,您可以插入文字十六进制字节或使用该函数,如下

    • 我有两个脚本和。脚本调用时返回一个随机数。我想从并打印所有这些返回值。换句话说,脚本如下所示: 现在我有以下代码在 但是,我收到的错误是,。我将如何着手完成这项任务?

    • 本文向大家介绍python3通过subprocess模块调用脚本并和脚本交互的操作,包括了python3通过subprocess模块调用脚本并和脚本交互的操作的使用技巧和注意事项,需要的朋友参考一下 因工作需要,需实现如题所示功能。查阅网上博客,资料,大多都是针对python2的,而且很多地方不明所以,所以自己整理了一下查阅的结果,重新写一篇博客。 预备知识 1、python3的默认字符串类型 P

    • 问题内容: 是否有任何聪明的方法可以通过ssh在远程主机上运行本地Bash功能? 例如: 是的,我知道这行不通,但是有办法实现吗? 问题答案: 您可以使用该命令通过来使功能在远程计算机上可用。有多个选项,具体取决于您要如何运行远程脚本。 要在远程主机上使用该功能: 更好的是,为什么还要麻烦管道: 或者,您可以使用HEREDOC: 如果要发送脚本中定义的所有函数,而不仅仅是发送,请像这样使用: 说明

    • 问题内容: 我会解释一个模糊的标题。 我正在编写一个SQL脚本来为数据库中表的每一行创建一个插入语句,纯粹是为了能够将该数据应用回另一个数据库。 这是我目前所拥有的: 它的效果很好,输出如下: 问题是,如果字段之一为空,则该行将无法生成更新脚本,在输出文件中,该行仅是空白。显然,由于有20多个字段,因此一些可选内容意味着几乎不会生成我的任何脚本。 有没有办法解决这个问题? 问题答案: 对于NULL

    • 问题内容: 我有一个脚本,执行时会向用户询问某些查询,并以json格式构建输出框架。使用python子进程,我可以从另一个名为的脚本中调用此脚本。一切都按预期工作,除了我无法在变量中获取输出?我正在Python 3中执行此操作。 问题答案: 要使用模块从另一个脚本中调用Python脚本并传递一些输入并获取其输出,请执行以下操作: 这里定义了功能。 更为灵活的替代方法是导入模块a并调用函数以获取结果