Компрессор YUI и приложения .NET
Я хочу использовать YUI Compressor (оригинал) и использовать его как часть типичных процессов сборки MS (Visual Studio 2008, MSBuild).
Есть ли у кого-нибудь какие-либо рекомендации или мысли по этому поводу? Например, хорошие способы включения в проект, что делать с существующими ссылками на CSS и JS и т.п.
Я рад услышать о преимуществах YUI Compressor.NET и альтернативах, но меня больше интересует использование оригинала.
Спасибо
Скотт
Ответы
Ответ 1
Я использую оба. Компрессор YUI является командной строкой и легко интегрируется в любой процесс сборки. Я без проблем столкнулся с ним.
Вероятно, наиболее распространенным является выполнение сжатия javascript/css при развертывании. Таким образом, вам не нужно обновлять ссылки JS. Но я использую другой метод на своем сайте. У меня есть сжатые файлы, созданные как *-min.js
и т.д. Чтобы включить файл script или css на мою страницу, я вызываю серверный метод:
<%= ScriptSrc("~/assets/myscript.js") %>
<%= LinkSrc("~/assets/main.css") %>
Эти методы делают следующее:
- Разверните путь, связанный с приложением
- добавить строку версии в конец (для недействительности кэша)
- выберите между полным script и мини-версией в зависимости от того, находимся ли мы в режиме отладки или нет.
В режиме отладки ScriptSrc
может выводить что-то вроде этого:
<script type="text/javascript" src="http://stage.myapp.com/assets/myscript.js?v=1.2" ></script>
но в процессе производства он загрузил уменьшенную версию:
<script type="text/javascript" src="http://stage.myapp.com/assets/myscript-min.js?v=1.2" ></script>
Одно из преимуществ этого заключается в том, что я могу переключаться между полной и уменьшенной версиями, просто изменив web.config
, что может помочь отладке.
Ответ 2
Пожалуйста, обратитесь к этой статье: Как использовать событие пост-сборки Visual Studio с YUI Compressor для .NET
Ответ 3
Поскольку YUI Compressor - это просто инструмент командной строки, вы можете назвать его частью действия Pre или Post Build. (Если вы достаточно глубоко разбираетесь в MSBuild, вы можете позволить ему запускать только тогда, когда файлы были изменены, ускоряя ваши регулярные сборки, VS довольно мягко, когда речь идет о настроенных действиях MSBuild в файле проекта.)
Вы можете использовать ответ Гейба в качестве руководства по разработке с использованием такой настройки; вы могли бы также во время Render
, скажем, на главной странице перевести весь неинфицированный URL-адрес в <head>
с мини-адресом (немного сложнее, так как теги <script>
будут отображаться в середине Text
свойство LiteralControl
s).
Ответ 4
Я использовал директивы компилятора для моего script, например, (на главной странице);
...
<% #if RELEASE %>
<script src="Scripts/combined.min.js" type="text/javascript"></script>
<% #else %>
<script src="Scripts/myscript1.js" type="text/javascript"></script>
<script src="Scripts/myscript2.js" type="text/javascript"></script>
<% #endif %>
</body>
</html>
Затем в процессе сборки мои различные .js файлы объединяются в один файл conbined.min.js.