Минификация сценария и непрерывная интеграция с MSBuild

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

18
задан Community 23 May 2017 в 11:47
поделиться

2 ответа

Проект MSBuildCommunityTasks имеет несколько задач MSBuild, которые могут сделать то, что Вы ищете включая Слияние и JSCompress.

Вы могли добавить их в свой проект MSBuild в цели AfterBuild, чтобы позволить проекту выполнить это действие каждый раз, когда проект разрабатывается, и ничто никогда не было бы вне синхронизации. Ваше веб-приложение могло затем сослаться на уплотненную версию для выполненного, но разработчики отредактируют полные версии.

Ничто иное не было бы необходимо на сервере кроме блока задач сообщества MSBuild. Можно поместить этот блок в собственное исходное дерево и ссылку оттуда, и сборка CI должна получить тот блок и все, в чем это нуждается, когда это создает.

24
ответ дан 30 November 2019 в 08:10
поделиться

Другой JS (и CSS!) библиотека сжатия для MSBuild:

http://www.codeplex.com/YUICompressor

Это - порт.NET основанного на Java компрессор Yahoo! .

4
ответ дан 30 November 2019 в 08:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: