2012-04-30 8 views
2

私はいくつかの販売されているjavascriptを含むプロジェクトを持っています。 jQuery。これらのスクリプトをgitサブモジュールとして含めています。しかし、私のビルドプロセスでは、そのスクリプトのリポジトリ全体ではなく、ビルドされたスクリプトが必要です。だから私は各スクリプトを作成するためにレーキタスクを設定しようとしています。スクリプトの独自のrakefileを使用することをお勧めします。そして、作成したスクリプトを自分のアセットディレクトリにコピーします。gitサブモジュール上でrakeタスクを呼び出すにはどうすればよいですか?

file "app/vendor/scriptname.js" do 
    # Call the task that builds the script here 
    sh "cp app/vendor/script-submodule/dist/scriptname.js app/vendor/" 
end 

desc "Make vendor scripts available for build" 
task :vendor => "app/vendor/scriptname.js" do 
end 

私は私のRakefileでimport 'app/vendor/scriptname/Rakefile'を使用している場合は、私は右、スクリプトを構築するrakeタスクへのアクセス権を持っている必要がありますか?どのように私はそれを呼び出すだろうか?または、私はちょうどsh "cd app/vendor/script-submodule/ && rake dist"を使用し、それを良いと呼ぶべきですか?

答えて

0

私は同様の問題を解決しています。通常のようにrakeタスクを呼び出すだけでうまくいくようです。私の例がどのように見えるかは次のとおりです。私のサブモジュールのRakefileで次に

# Rakefile 
#!/usr/bin/env rake 
# Add your own tasks in files placed in lib/tasks ending in .rake, 
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 

require File.expand_path('../config/application', __FILE__) 
load 'engines/foo_engine/Rakefile' 

MyApp::Application.load_tasks 

# engines/foo_engine/Rakefile 
Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each do |f| 
    load f 
end 

とサンプルrakeタスク:コマンドプロンプトから次に

# engines/foo_engine/lib/tasks/foo/bar/task.rake 
namespace :foo do 
    namespace :bar do 
    desc "FooBar task" 
    task :foo_bar => :environment do 
     # perform task 
    end 
    end 
end 

rake foo:bar:task 
関連する問題