10

我有一个 Rakefile,其中包含部署或构建应用程序的任务。此 Rakefile 用于生产和开发。

我希望build任务知道环境是什么。这可以在我运行任务时不向任务传递参数的情况下完成吗?可以用环境变量来完成吗?

在开发时,我需要的任务是这样的:

task :build => :clean do
  compass compile -e development
  jekyll
end

在生产中,像这样:

task :build => :clean do
  compass compile -e production
  jekyll
end
4

1 回答 1

22

是的,您可以使用环境变量。这是骨架实现:

task :build do |t, args|
  puts "Current env is #{ENV['RAKE_ENV']}"
end

用法:

% rake build
Current env is 

% RAKE_ENV=development rake build
Current env is development
于 2013-01-22T11:06:26.927 回答