WebBrowserControl + JS minification: управление ресурсами-свойствами с помощью js-кода для минимизирующих кукол в событиях предварительной сборки Visual Studio - PullRequest
0 голосов
/ 13 декабря 2011

Справочная информация: Получен проект C #, который включает в себя блок JavaScript, который программно внедряется в веб-страницы, отображаемые элементом управления веб-браузера. Однако желательно минимизировать этот блок javascript и включить / записать его в свойстве файла ресурсов. Я знаю, что минимизация JavaScript возможна. Мне просто интересно, можно ли также записать полученную строку в определенное свойство файлов ресурсов, используя события предварительной сборки.

P.S .: Конечно, полученная строка может быть записана в файл, который, в свою очередь, связан со свойством ресурса. Однако я бы предпочел избегать чего-либо как такового, опасаясь снижения производительности, которое оно может наложить во время выполнения (блок javascript загружается довольно часто). Если я ошибаюсь, поправьте меня.

1 Ответ

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

Для тех, кто борется с подобными проблемами, это пошаговый подход, который я выбрал (имея альтернативные решения) в контексте Visual Studio 2010. Приведенный ниже метод обрабатывает минимизацию файлов javascript.единообразно при соблюдении системы контроля версий, которую вы можете использовать (избегая создания фантомных изменений в файлах, размещенных на ней).Вот шаги:

  1. Установите Java и Google Closure (для минимизации JavaScript).

  2. Откройте Ресурсы вашего проекта, перейдите в файл-resources и создать фиктивное свойство файла a-la foo.txt.Это должно создать и включить в ваш проект каталог с именем Resources.После этого вы можете удалить файл foo.txt.

  3. Щелкните правой кнопкой мыши каталог ресурсов и создайте файл javascript, заканчивающийся на Uniminified.js (например, MyInjectableJavascript.Unminified.js).Отредактируйте свойства этого файла и убедитесь, что для действия сборки установлено значение «Нет».Кстати, НЕ указывайте этот файл в ресурсах.

  4. Теперь вернитесь к свойствам файла Ресурса и добавьте новое свойство файла с тем же базовым именем файласозданный выше только на этот раз, заканчивающийся на min.js (например, MyInjectableJavascript.min.js).

  5. Перейдите к файлу .min.js, который был создан в каталоге ресурсов, и включите его.во встроенный ресурс.

  6. Теперь перейдите в свойства вашего проекта -> построить события и вставьте следующий код:

Pre-Build events(в одну строку):

call "$(ProjectDir)JavascriptMinificationWithGoogleClosure.bat" "$(ProjectDir)Resources\MyInjectableJavascript.Unminified.js" "$(ProjectDir)Resources\MyInjectableJavascript.min.js"

События после сборки (две строки):

 del "$(ProjectDir)Resources\MyInjectableJavascript.min.js"
 call echo. 2> "$(ProjectDir)Resources\MyInjectableJavascript.min.js"

Это означает, что он минимизирует код JavaScript перед сборкой проекта и послеэто сборка, он сбрасывает минимизированный файл в одну новую строку.

Примечание. Причина, по которой мы не удаляем минифицированный файл все вместе, заключается в том, что Visual Studio выдаст ошибку и будет вести себя очень странно, если минимизированныйфайл, на который ссылается tРесурсы не найдены (в моем случае Visual Studio полностью удалила Resources.Designer.cs ... 5 раз).Обрезая файл min.js до одной новой строки, вы можете сохранить его и даже добавить его в свою систему контроля версий, не беспокоясь об этом больше.

  • В каталоге вашегоПроект поместите файл с именем JavascriptMinificationWithGoogleClosure.bat со следующим содержимым:

    "%JAVA_HOME%jre6\bin\java" -jar "%CLOSURE_JS_HOME%compiler.jar" --js %1 --js_output_file %2

  • Наконец, создайте две переменные среды (щелкните правой кнопкой мыши Компьютер -> Свойства -> Окружающая средаПеременные) с именами JAVA_HOME и CLOSURE_JS_HOME, которые указывают соответственно на каталоги, в которые вы установили исполняемые файлы Java и Closure.Например:

    JAVA_HOME -> C:\Program Files\Java\ CLOSURE_JS_HOME -> C:\Program Files\Closure\

Примечание. Обязательно добавляйте косую черту в конце каждого из двух путей.

  • Теперь вы можете получить доступ к уменьшенному JavaScript, который будет сгенерирован во время сборки из кода C #, используя:

    Resources.MyInjectableJavascript_min

Надеюсь, это поможет.Удачи.

Ура, Доминик

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