Нужен совет по сборке JS

У меня есть проект MVC 4.5, в котором большая часть логики пользовательского интерфейса организована в плагинах jQuery. Я хочу защитить свой код с помощью минимизации и объединения (хотя я понимаю, что минификация будет делать только то, что касается защиты, это лучше, чем оставлять отформатированные и задокументированные исходные файлы на сервере).

В идеале я хочу, чтобы мой сервер разработки работал как есть — файлы не были минимизированы и разделены. Но при развертывании на производственном сервере я хочу, чтобы исходные файлы были удалены и были доступны только минимизированные пакеты. Также обратите внимание, что во многих случаях мои плагины jQuery загружают другие плагины из кода JavaScript (я использую head.js), поэтому я не могу использовать для этого @Script.Render.

Какие технологии я использую — встроенное объединение MVC, SquishIt, Bundler или мне нужно прибегать к MSBuild и Microsoft Axaj Minifier? Подводя итог, я хочу удалить исходные файлы JS и просто оставить минимизированные пакеты в производстве, и, желательно, найти способ не изменять ссылки head.js в зависимости от того, минифицированы файлы или нет.

Спасибо за совет.


person user1044169    schedule 02.12.2012    source источник


Ответы (1)


Просто подумал, что я отвечаю тем, что я здесь сделал:

Напомним: я хотел запутать свои исходные файлы с помощью минимизации, не раскрывая при этом исходные JS-файлы в производстве. Я также хотел, чтобы head.js преобразовывал URL-адреса исходных файлов в URL-адреса пакетов:

  • Поместите все неминифицированные файлы javascript в папку, доступную только для администратора.
  • Используется сборка, встроенная в ASP.NET MVC 4.5, для создания пакетов.
  • Направил мой тег head.js на контроллер MVC, который вернул код head.js + массив javascript с x-ref между необработанными URL-адресами и URL-адресами пакета (доступен из статического объекта BundleTable)

Объединение происходит за пределами членства в ASP.NET, поэтому пакеты создаются и доступны анонимным пользователям, даже если исходные файлы находятся в папке, доступной только администратору. Затем трюк с динамическим дополнением кода head.js URL-адресами пакетов, сгенерированными на стороне сервера, обеспечивает вызов пакетов из JS-файлов.

person user1044169    schedule 08.12.2012