0

运行 Rake 任务可能会很尴尬。

命令往往很长。

例如...

$ bundle exec rake some_project:clear_expired_sessions

此外,我可能并不总是记得我只是偶尔使用的某些任务的确切名称。

所以我必须先像这样发现任务的名称,然后将其复制并粘贴到命令行中......

$ bundle exec rake -T some_project

我在 OS X 上使用带有oh-my-zsh和 Rake 插件的 Zsh。

它提供了 Rake 任务的制表符完成,但您仍然必须键入“ bund exec rake”,完成加载的速度真的很慢——在我的机器上几秒钟。

有没有更有效的方法?

4

2 回答 2

1

您可以随时为您的 .bashrc 或 .bash_profile 添加一个别名,以避免bundle exec rake以后使用。

alias rake='bundle exec rake'

当然,bundle exec无论何时运行,都牵涉rake到现在,由您决定是否需要。

或针对特定项目(假设您的项目是 rails_blog)

alias rkblog=railsblogtasks()
function railsblogtasks(){
  cd /path/to/blog/;
  bundle exec rake -T;
end

alias rkblogrun=runblogtask()
function runblogtask(){
  cd /path/to/blog/;
  bundle exec rake $1;
end

现在$ rkblog将显示您的所有 rails_blog 任务,$ rkblogrun <task>并将运行您的 rails_blog 项目中的任何任务。这当然可以重构和抽象,但有一个大致的想法。

于 2013-10-19T06:13:11.107 回答
0

一个简单的简化:

task :example_alias => :environment do
  Rake::Task[some_project:clear_expired_sessions].invoke
end

然后你可以简单地做

  $ rake example_alias
于 2013-10-18T21:54:10.193 回答