我想安装一个插件,但我担心它会安装很多不必要的东西。我想查看rake从中获取安装说明的任何文件,并删除任何不必要的内容。
我相信这是Rakefile。但是我不确定当rake查看rakefile时会发生什么 - 它是执行整个rakefile还是仅指定与此“install”过程相关的部分rakefile?
答案 0 :(得分:3)
rake文件是一组任务,当你用一个参数调用rake时(在本例中为install),这是执行的任务。 (如果你来自Java,它与ant类似)
所以,不,rake不会在你调用“rake + task”时执行整个rakefile,而只会执行所选的任务。请注意,任务可以具有依赖性(例如,“测试”任务可能取决于其他先前的任务,例如创建一些文件夹和测试运行的东西)。
最后,其他用户指出的rake用户指南很有用,但我建议在这里阅读更愉快 - > Ruby on Rails Rake tutorial
答案 1 :(得分:1)
Rake的设置与Make非常相似,因为Rakefile由目标和依赖项组成。这与常规ruby脚本的不同之处在于Rake从您请求的目标开始,并在执行目标之前递归执行其依赖项。
因此,安装可能如下所示:
task :install => :stage do
# stuff to do
end
此处,您的目标是install
任务,它取决于其他名为stage
的任务。
要执行install
,Rake必须首先执行stage
的依赖项(如果有的话),然后执行stage
,最后执行install
。所以不,你不执行整个文件,只是足以安全地执行你要求的目标。
Rake还支持文件目标:
file 'foo.html' => 'bar.xml' do |t|
# Build foo.html from bar.xml, however that is done
end
如果你知道Make,这看起来很熟悉。 Rake首先检查bar.xml
是否依赖于任何东西,如果是,则执行该操作。然后,如果bar.xml
比foo.html
更新,则Rake执行此文件任务。如果foo.html
更新,那么Rake会认为它已经构建并跳过它。
如果您想了解Rake的作用,Rake User Guide是一个很好的起点。
答案 2 :(得分:0)
为什么插件会安装“不必要的”?
假设您的担心是合理的,但是,您是否可以安装插件,进行调查,如果不满意,则使用您的源控制系统恢复到预安装版本?如果你没有使用源代码控制,这可能是开始的完美借口......