Можно ли использовать Dojo webjars SourceMaps для использования несжатых файлов?
Недавно я тестировал эту библиотеку:
https://github.com/webjars/dojo
это здорово, так как я могу привнести додзё в свой проект как библиотеку maven. Однако проблема в том, что без несжатых файлов немного сложно отладить. Я знаю, что одним из способов использования несжатых файлов является переопределение файла dojo.js.uncompressed.js. Для этого я копирую файл dojo.js.uncompressed.js и вставляю его в папку:
WebApp / webjars / додзё / 1.9.2 / додзё
с тем же именем, что и dojo.js.uncompressed.js, и в строке 1012 я изменил:
// if result is not absolute, add baseUrl
if(!(/(^\/)|(\:)/.test(url))){
url = baseUrl + url;
}
от:
// if result is not absolute, add baseUrl
if (!(/(^\/)|(\:)/.test(url))) {
url = baseUrl + url;
// if the url begins with "webjas/dojo" and ends with ".js" add ".js.uncompessed"
if (/^webjars\/dojo\/.+\.js$/.test(url)) {
url += '.js.uncompressed';
}
}
Хотя это решает проблему использования несжатых файлов, это уродливое решение. Я знаю, что другим способом можно было бы переопределить определение и требовать функции, но этого было бы труднее достичь.
В общем, мне было интересно, есть ли способ использовать исходные карты с Dojo Webjars, чтобы избежать предыдущего взлома.
2 ответа
Теперь можно использовать исходный код библиотек dojo, вам просто нужно использовать зависимость, которая говорит "-src", т.е.
http://github.com/webjars/dojo-src
Кроме того, существует версия "1.9.4", которая содержит версию "1.9.3", поэтому вы должны использовать версию "1.9.3".
Не уверен, почему вам нужно использовать веб-банки, последняя версия Dojo доступна прямо с Maven
http://search.maven.org/#artifactdetails|org.dojotoolkit|dojo|1.9.3|pom
Кроме этого, если вам нужно по какой-либо причине изменить исходный код, вы можете загрузить несжатые файлы, выполнить редактирование, сжать их и вставить файл zip в свой репозиторий. В вашей конфигурации maven-war-plugin вы можете просто добавить зависимость в качестве оверлея, и она будет развернута по выбранному вами пути:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<useCache>true</useCache>
<overlays>
<overlay>
<groupId>org.dojotoolkit</groupId>
<artifactId>dojo</artifactId>
<type>zip</type>
<targetPath>js/</targetPath>
</overlay>
</overlays>
</configuration>
</plugin>
...