我有一个dart命令提示符文件,它是开发前需要的样板功能。我希望在用户运行pub get时运行它。
我看到了https://www.dartlang.org/tools/pub/pubspec.html#executables"可执行文件"可能正是我想要的。我注意到它必须在垃圾箱中,所以看起来如果我设置:
executables:
admin_script:
它会公开admin_script
以便能够执行并调用:bin / admin_script.dart。
问题是1)我希望这个脚本暂时在lib / commmon /中运行.... 2)可执行文件公开它,但不一定要执行它。
是否有我遗漏的东西可以让我做类似的事情:
pub get
然后它会在get
来电,lib/common/admin_script.dart
修改
作为编辑,我试图看看是否有办法在pub get之后立即运行此维护脚本。不确定这是否被视为在pubspec.yaml文件中,或者如果这是我想要在我的脚本中配置的其他内容。
我认为这是打开项目时运行的好脚本,但我不确定这是否也是一个适用的选项。
答案 0 :(得分:1)
这不可能来自酒吧。它不支持任何类型的钩子。 This issue正在跟踪程序包提供在安装时运行的挂钩的能力,但我不认为本地程序包定义的挂钩存在问题。
现在最好的方法是使用像hop这样的任务运行器来定义一个运行pub get
的任务,并执行您需要的任何其他代码。这样做的另一个好处是比隐式运行的钩子更明确。
顺便说一句,存储bin /并通过pubspec公开的可执行文件旨在面向公众:它们将由您的程序包用户执行。如果您想要一个仅在您的包中运行的可执行文件,那么该文件应该放在工具/目录中。有关详细信息,请参阅the package layout conventions。