1

を使用して 1 つにコンパイルしたい JavaScript でいっぱいの次のフォルダーを検討してくださいrake-pipeline

  • jquery.js
  • some-jquery-plugin.js
  • まだ別の jquery-plugin.js
  • library-1.coffee
  • library-2.coffee

library-1そしてlibrary-2jQueryに依存します。

アセットファイル

require "rake-pipeline-web-filters"

output "dist"

input "js" do
  match "**/*.coffee" do
    filter Rake::Pipeline::Web::Filters::CoffeeScriptFilter
  end

  match "**/*.js" do
    filter Rake::Pipeline::Web::Filters::UglifyFilter
    filter Rake::Pipeline::OrderingConcatFilter, ["jquery.js", "libs/ufvalidator.js"], "application.js"
  end
end

すべてを連結すると、Coffeescript で記述されたスクリプトが一番上にあることに気付きました。OrderingConcatFilterこれを防げませんか?Coffeescript ソースが jQuery の後にあるようにするには、何を修正すればよいですか?

ありがとうございました。

4

1 に答える 1

1

UglifyFilter は、処理するファイルの名前を変更して.min.jsサフィックスを追加します。jquery.js醜くなり、jquery.min.js出てきます。

おそらく、次のように UgliifyFilter を最後に配置します。

match "**/*.js" do
  concat ["jquery.js", "libs/ufvalidator.js"], "application.js"
  uglify
end

ただし、ConcatFilter と一致するファイル名を変更することもできます。

match "**/*.js" do
  uglify
  concat ["jquery.min.js", "libs/ufvalidator.min.js"], "application.js"
end

または、ファイルの名前を変更しないように UgliifyFilter に指示します。

match "**/*.js" do
  uglify { |input| input }
  concat ["jquery.js", "libs/ufvalidator.js"], "application.js"
end
于 2012-07-16T20:33:51.077 に答える