1

考虑以下充满javascript的文件夹,我想使用以下方法将其编译成一个文件夹rake-pipeline

  • jQuery.js
  • 一些 jquery-plugin.js
  • 又一个 jquery-plugin.js
  • 图书馆-1.coffee
  • library-2.coffee

library-1library-2依赖于 jQuery。

资产文件

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出来。

我可能会将 UglifyFilter 放在最后,如下所示:

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

或告诉 UglifyFilter 不要重命名文件:

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