Есть ли библиотека.NET для минимизации Javascript?

Я программно создаю файлы javascript из веб-приложения.NET и хотел бы уменьшить его, прежде чем передать его пользователю? Есть ли библиотека или техника для этого на лету?

Поблагодарить

6 ответов

Решение

Если вы просто хотите иметь возможность минимизировать строку javascript в C# перед сохранением ее в файл, я бы использовал для этой цели либо MS Ajax Minifier, либо YUI-компрессор.net. Оба из них предоставляют API, который позволяет вам сделать это. Вот пример использования ajax minifier:

var minifier = new Microsoft.Ajax.Utilities.Minifier();
var minifiedString = minifier.MinifyJavaScript(unMinifiedString);

Использование YUI Compressor для.net:

var minifiedString = JavaScriptCompressor.Compress(unMinifiedString);

И библиотеки Minizer ajax, и библиотеки YUI Compressor доступны через Nuget.

Почему бы не использовать написанный javascript minifier непосредственно в.NET (попробуйте, если он работает как код JScript). На ум приходит Uglify.js...

Мы используем C# порт JSMIN: http://www.koders.com/csharp/fidC8F76D32D2FB3B213046C30CD8B362820FFFD604.aspx?s=file

Это работает довольно хорошо.

Я использую это вручную.

http://dean.edwards.name/packer/

я сжимаю файлы, загружаю, затем отменяю пакет, поэтому у меня нетронутый исходный код я упаковываю только производственный код.

Вы можете использовать Closure Compiler, но я бы не советовал сокращать файлы каждый раз, когда пользователь посещает ваш сайт. Гораздо лучше собрать все файлы перед развертыванием новых коммитов. Посмотрите на эту статью об инструментах.

Ну, я думаю, есть три вещи, которые нужно сделать, чтобы минимизировать файл скрипта:

  1. Укоротить длинные переменные
  2. Удалить комментарии
  3. Удалить ненужные пробелы (табуляция, пробел, возврат каретки)

Все они относительно просты для замены во время выполнения, но потребуют немного написания кода. Для сокращения переменных найдите в их области одинаковые переменные, длина которых превышает, например, 2 буквы. Затем используйте сокращение и выполните это в блоке кода (область действия переменной).

Удаление комментариев будет простым. Удаление пробелов также легко. Для однострочного, найти // и удаляйте до возврата каретки / перевода строки. Пробелы, заменяйте табуляции пробелом, несколько пробелов пробелом, а возврат каретки / переводы новой строки пробелом.

Другие вопросы по тегам