Можно ли использовать 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>
...
Другие вопросы по тегам