Есть ли библиотека .NET для минимизации Javascript? - PullRequest
29 голосов
/ 20 декабря 2011

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

Спасибо

Ответы [ 6 ]

61 голосов
/ 20 декабря 2011

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

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.

2 голосов
/ 20 декабря 2011

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

1 голос
/ 20 декабря 2011

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

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

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

1 голос
/ 20 декабря 2011

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

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

0 голосов
/ 20 декабря 2011

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

0 голосов
/ 20 декабря 2011

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...