Я хотел бы выборочно сжать некоторые из файлов javascript в приложении Rails 3.2, но все же все js-активы будут обслуживаться из одного связанного файла в рабочей среде.Селективные Rails 3.2 сжатие конвейера активов на файл
Синтаксис как это, внутри приложение/активы/JavaScripts/application.js файла, используя выдуманный:compress => false
варианта переданного последние 3 звездочек require
директивы Я надеюсь, объясняет то, что я пытаюсь добиться.
// Contents of app/assets/javascripts/application.js
//
//= require jquery
//= require jquery_ujs
//= require angular-1.0.1/angular, :compress => false
//= require angular-1.0.1/angular-resource, :compress => false
//= require products, :compress => false
Так jquery.js и jquery_ujs.js файлы будут сжаты (по Rails компиляции активов, которая использует UglifierJS по умолчанию), а оставшиеся 3 файлы не будут сжаты, но они будут группироваться в приложение .js.
Есть ли способ сделать это?
Мотивация состоит в том, что файл products.js содержит контроллер угловой системы, который использует инъекцию зависимостей углов, которая требует определенных переменных имен, таких как $scope
и , не изменяется.
Большое спасибо Милан, работает для меня в Rails 3.2.6, angularjs отлично работает сейчас. –
Из любопытства, что делает часть «Звездочки :: LazyCompressor'? –
Почти все в рельсах - это просто «оболочка», каждая конкретная реализация определенного шаблона обобщается, поэтому вы можете переключиться на альтернативу. Sprockets - это двигатель, который делает сжатие, sass/less precompilation ... и многое другое. Линия Sprockets :: LazyCompressor.new создает ленивый загрузчик для сжатия js, и вы можете использовать что угодно. По умолчанию с помощью rails вы используете uglifier для сжатия ваших файлов, а строка выше - это просто способ сказать uglifier, чтобы избежать переименования аргументов метода. –