重命名核心Dojo包

Renaming core Dojo packages

本文关键字:Dojo 核心 重命名      更新时间:2023-09-26

使用Dojo1.6时,我可以"重命名"核心Dojo包,如下所示:

<html>
<head>
<script type="text/javascript">
   djConfig = {
      baseUrl: 'https://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/',
      scopeMap: [
         [ 'dojo', 'myDojo' ]
      ]
   }
</script>
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js"></script>
</head>
<body>
<script type="text/javascript">
   if (typeof dojo != 'undefined') {
      document.write("Defined: dojo: " + dojo.version + ''n');
   }
   if (typeof myDojo != 'undefined') {
      document.write("Defined: myDojo: " + myDojo.version + ''n');
   }
</script>
</body>
</html>

上面打印了"Defined:myDojo:1.6.1…"。如何在Dojo1.7中完成同样的事情?按照这里的例子,我尝试了这个测试,但没有成功:

<html>
<head>
<script type="text/javascript">
   dojoConfig = {
      baseUrl: 'dojo/1.7.2/dojo/',
      packages: [
         { name: 'myDojo',
           location: '../dojo',
           packageMap: {
              dojo: 'myDojo'
           }
         }
      ]
   }
</script>
<script src="dojo/1.7.2/dojo/dojo.js"></script>
</head>
<body>
<script type="text/javascript">
   if (typeof dojo != "undefined") {
      document.write("Defined: dojo: " + dojo.version + ''n');
   }
   if (typeof myDojo != "undefined") {
      document.write("Defined: myDojo: " + myDojo.version + ''n');
   }
</script>
</body>
</html>

这会打印"Defined:dojo:1.7.2…"。我缺少什么?

要在使用源版本时重新映射全局,需要将dojoConfig.async设置为truthy,然后加载'myDojo'包。

http://jsfiddle.net/neonstalwart/44e56/是下面代码的一个工作示例:

<script type="text/javascript">
    // configure dojo
    dojoConfig = {
        async: 1,
        packages: [
            {
                name: 'myDojo',
                location: '../1.7.2',
                // re-map globals to different names
                packageMap: {
                    dojo: 'myDojo'
                }
            }
        ],
        deps: ['myDojo'],
        callback: function () {
            if (typeof dojo != "undefined") {
                alert("Defined: dojo: " + dojo.version + ''n');
            }
            if (typeof myDojo != "undefined") {
                alert("Defined: myDojo: " + myDojo.version + ''n');
            }
        }
    };
</script>
<script type="text/javascript" src="https://raw.github.com/dojo/dojo/1.7.2/dojo.js"></script>