我有一个 gem,my_gem,它具有 thor 作为运行时依赖项。我在 gem 中有一个 Thor 的子类:
lib/tasks/task.thor
我可以从 gem 的源目录运行:
bundle
thor task:my_task
my_task 将被执行。
但是,如果我在另一个项目的 Gemfile 中包含 my_gem,当我运行时:
bundle
thor task:my_task
我得到:
No thor tasks available
我做错了什么?
最佳答案
在我看来,如果我理解正确的话,您的 lib/tasks/task.thor 实际上是 gem 本身的一部分,并且您希望 thor 找到埋在 gem 中的 thor 文件。
如果是这种情况,这将不起作用,因为 thor 不会自动查看您的 gem 目录。
您可能想考虑完全不使用 thor 文件,而只是编写一个命令来使用 thor 来处理您的命令行参数,例如 Rails 所做的那样。
如果您真的需要以这种方式运行 thor,那么您的 gem 必须“神奇”地将您的 thor 文件放在 thor 搜索的路径中。
关于ruby - 执行位于 bundle 的 gem 中的 Thor 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13618395/