如何使用无压缩文件中的Dojo 1.7?(How do I use uncompressed fil

2019-09-18 02:09发布

我创建了一个道场模块依赖于DojoX中/数据/ JsonRestStore是这样的:

define("my/MyRestStore", 
    ["dojo/_base/declare", "dojox/data/JsonRestStore"], 
    function(declare, JsonRestStore) {

var x = new JsonRestStore({
    target: '/items',
    identifier: 'id'
});

...

这是罚款。 但现在我想有JsonRestStore代码的未压缩版本加载,这样我可以调试它。 我无法找到如何做到这一点的任何文档,但是因为有一个叫做“JsonRestStore.js.uncompressed.js”文件我改变了我的代码:

define("my/MyRestStore", 
    ["dojo/_base/declare", "dojox/data/JsonRestStore.js.uncompressed"], 
    function(declare, JsonRestStore) {
...

想着可能的工作。

我可以看到萤火虫在加载JsonRestStore.js.uncompressed.js文件,但我得到试图做的时候错误new JsonRestStore

JsonRestStore is not a constructor

如果这方面的工作?

有没有配置道场使用的所有模块的未压缩版本的方法吗? 这就是我真正想要的,但会满足于做对每个依赖的基础,如果这是唯一的办法。

更新

我已经找到了一种方法可以达到我想要做什么:重命名文件JsonRestStore.js.uncompressed.js到JsonRestStore.js。

然而,这似乎有点像哈克的解决办法,所以我还是会热衷于知道是否有更好的方法(例如,通过配置)。

Answer 1:

你有两个选择

1)创建一个自定义生成。 自定义版本将输出可用于调试一个压缩的文件。 想想dojo.js.uncompressed.js,但它包含了所有你使用额外的模块。

要么

2)对于开发环境中,使用道场的源代码。 这意味着下载Dojo Toolkit的SDK和开发环境从引用的dojo.js。

对于我的工作项目,我做两个。 我设置了道场的配置,以便它可以是动态的,我可以改变,我想用一个查询字符串参数,该参数配置。

当我调试的问题,我将使用第一个选项就是为了让我步执行代码,看看到底是怎么回事。 我用的是第二个选项,当我写一些显著js和不希望自定义生成的开销看到我的变化。

我形容这更在位

http://swingingcode.blogspot.com/2012/03/dojo-configurations.html



Answer 2:

我认为,这样做的原因是由于加载器所使用的文件约定声明其类负载(模块),这一事实。 1.7装载机是不是太强大的,只是还没有,香港专业教育学院也有类似的问题,直到意识到如何分开“” 和“/”字符。

它只有一个合格的猜测; 但我相信这与解释做“” 字符这标志着作为一个子命名空间,而不是模块名的类名。

该 '限定(/ * BLANK * / [/ * DEPENDENCIES * /],...)' - ,其中没有第一字符串参数中给出 - 得到由文件名(基本名)加载。 返回的声明也有一种说法,虽然。 因此,对于jsonrest你的榜样,其分流/解析为这样的:

toplevel = dojox
mid = data
modulename = JsonRestStore.js.uncompressed

(故障..模块呈现为dojox.data.JsonRestStore.js.uncompressed,不dojox.data.JsonRestStore作为应该)。

所以,三个选项;

  1. 通过加载uncomressed类<script src="{{dataUrl}}/dojox/data/JsonRestStore.js.uncompressed.js"></script>和上dojo.ready解决它们
  2. 我想修改define([], function(){})在uncompressed.js来define("JsonRestStore", [], function() {})将做的伎俩(uncomfirmed)
  3. 使用Dojo /文装载机,见下文

文本填料需要:)

define("my/MyRestStore", 
    ["dojo/_base/declare", "dojo/text!dojox/data/JsonRestStore.js.uncompressed.js"], 
    function(declare, JsonRestStore) {
...
        JsonRestStore = eval(JsonRestStore);
        // not 100% sure 'define' returns reference to actual class, 
        // if above renders invalid, try access through global reference, such as
        // dojox.dat...


文章来源: How do I use uncompressed files in Dojo 1.7?