运行Rake任务可能很尴尬。
命令往往很长。
例如......
$ bundle exec rake some_project:clear_expired_sessions
另外,我可能并不总是记得偶尔使用的某些任务的确切名称。
所以我必须首先发现任务的名称,然后将其复制并粘贴到命令行中......
$ bundle exec rake -T some_project
我在OS X上使用Zsh oh-my-zsh和Rake插件。
它提供了Rake任务的制表符完成功能,但你仍然需要输入“bund exec rake
”,完成的加载速度非常慢 - 我的机器上几秒钟。
有更有效的方法吗?
答案 0 :(得分: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项目中的任何任务。这当然可以被重构和抽象,但是有一个普遍的想法。
答案 1 :(得分:0)
快速简化:
task :example_alias => :environment do
Rake::Task[some_project:clear_expired_sessions].invoke
end
然后你可以简单地做
$ rake example_alias