application.css で使用している場合、ツリー構成//=require_tree .に頼る以外に特定のファイルを除外する方法はありますか?//=require_directory
おそらく次のようなもの//= require_tree ., {except: 'something'}
application.css で使用している場合、ツリー構成//=require_tree .に頼る以外に特定のファイルを除外する方法はありますか?//=require_directory
おそらく次のようなもの//= require_tree ., {except: 'something'}
stubこれは、Sprocket v2.2.0 以降で利用可能な Sprocket の新しいディレクティブで可能です。ただし、Rails 3.2 は、この機能を持たない Sprockets v2.1.3 のみを使用します。現在、現在の Edge Rails にはこのstubディレクティブがあり、正式には Rails 4.0 以降に含まれます。
使用法:
//= require jquery
//= require_tree .
//= stub unwanted_js
stubrequireディレクティブは、後続のまたはディレクティブによってオーバーライドできませんinclude。
Rails 3.2 プロジェクトでディレクティブを使用する場合はstub、Edge Rails に切り替えるか、Sprockets 依存関係をバージョン 2.2.0 に変更して Rails gem を分岐する必要があります。
Rails 3.2.9 のリリース以降、//= stub最新のスプロケットのディレクティブを使用できるように、スプロケットをバージョン 2.2.x にロックする機能がサポートされています。
//= stub unwanted_js
http://weblog.rubyonrails.org/2012/11/12/ann-rails-3-2-9-has-been-released/
したがって、それを使用するには、Rails 3.2.9 にアップグレードするだけです
注意: この回答は古くなっています。この機能を持つ Sprockets が更新されています。以下の回答を参照してください。
===
これは現在の Sprockets ディレクティブでは不可能ですが、便利な機能のようです。
必要な各ファイルを手動でリストするもう1つの方法。
おそらく、これを機能リクエストとしてSprocketsリポジトリに提出できますか? :-)
次のモンキーパッチは私のためにこれを解決します:
module Sprockets
class DirectiveProcessor
# support for: require_tree . exclude: "", "some_other"
def process_require_tree_directive(path = ".", *args)
if relative?(path)
root = pathname.dirname.join(path).expand_path
unless (stats = stat(root)) && stats.directory?
raise ArgumentError, "require_tree argument must be a directory"
end
exclude = args.shift == 'exclude:' ? args.map {|arg| arg.sub(/,$/, '')} : []
context.depend_on(root)
each_entry(root) do |pathname|
if pathname.to_s == self.file or exclude.include?(pathname.basename(pathname.extname).to_s)
next
elsif stat(pathname).directory?
context.depend_on(pathname)
elsif context.asset_requirable?(pathname)
context.require_asset(pathname)
end
end
else
# The path must be relative and start with a `./`.
raise ArgumentError, "require_tree argument must be a relative path"
end
end
end
end
https://github.com/QubitProducts/miniMergeを試してみてください
JSだけでなくベーシックモードスプロケットにも対応。
ファイル レベルだけでなく、ブロックや行でも除外できます。
複数のソース ベースによる完全な依存関係の管理。
私は過去にスプロケットを使用しましたが、これはより優れており、CSS にも使用しています。