Ответ 1
Обратите внимание: этот ответ основан на defsprite one, потому что он указал мне в правильном направлении, но реальность оказалась немного более жесткой.
Поместите следующее в config/initializers/sprockets.rb
, чтобы зарегистрировать новый процессор звездочек:
class DirectiveProcessor < Sprockets::DirectiveProcessor
def process_require_glob_directive(glob)
each_file(glob) { |fn| process_require_directive(fn) }
end
def process_stub_glob_directive(glob)
each_file(glob) { |fn| process_stub_directive(fn) }
end
private
def each_file(glob)
glob_pattern = "#{@dirname}/#{glob}"
path_prefix = Pathname.new(@dirname)
Dir[glob_pattern].sort.each do |path|
yield Pathname.new(path).relative_path_from(path_prefix).to_s
end
end
end
Rails.application.config.assets.configure do |env|
env.register_processor('application/javascript', DirectiveProcessor)
end
Наиболее заметные изменения в отношении исходного ответа включают преобразование абсолютных путей, возвращаемых Dir
в относительные (абсолютные пути не принимаются звездочками) и другой метод регистрации (Rails.application.assets
есть nil
в моем случае).
Затем в application.js
(перед любыми require_tree
операторами) добавьте:
//= stub_glob angular/**/*.spec.js