是否可以使用Dojo webjars SourceMaps来使用未压缩文件?

时间:2014-04-10 10:04:47

标签: javascript maven dojo compression webjars

最近我在测试这个库:

https://github.com/webjars/dojo

这很棒,因为我可以将dojo作为maven库带到我的项目中。但问题是,如果没有未压缩的文件,调试有点困难。我知道使用未压缩文件的一种方法是覆盖文件dojo.js.uncompressed.js。为此,我复制dojo.js.uncompressed.js文件并将其粘贴到文件夹中:

web应用程序/ 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 个答案:

答案 0 :(得分:0)

不确定为什么需要使用webjars,最新的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>
...

答案 1 :(得分:0)

现在可以使用dojo库的源代码,你只需要使用&#34; -src&#34;的依赖关系,即:。

http://github.com/webjars/dojo-src

不过,有&#34; 1.9.4&#34;版本包含版本&#34; 1.9.3&#34;,所以你应该使用版本&#34; 1.9.3&#34;。