javascript - 将包重新映射到 dojo 构建中

标签 javascript dojo dojo-build dojo-1.7

我正在使用 dojo 1.7 开发一组模块供其他人使用。所有模块都是 AMD 模块,并在包内使用相对路径。我的模块需要跨域加载,并且不会干扰或关心使用模块的页面上运行的 dojo 版本(假设有人正在使用。如果我正确理解文档,我可以通过执行以下操作来指定打包重新映射)像这样的东西:

var dojoConfig = {
    packages: [
        {
            name: "myDojo",
            location: "path/to/my/dojo",
            packageMap: {
                dojo: "myDojo",
                dijit: "myDijit",
                dojox: "myDojox"
            }
        },
        {
            name: "myDijit",
            location: "path/to/my/dijit",
            packageMap: {
                dojo: "myDojo"
            }
        },
        {
            name: "myDojox",
            location: "path/to/my/dojox",
            packageMap: {
                dojo: "myDojo",
                dijit: "myDijit",
                dojox: "myDojox"
            }
        },
        {
            name: "myPackage",
            location: "path/to/my/package",
            packageMap: {
                dojo: "myDojo",
                dijit: "myDijit",
                dojox: "myDojox"
            }
        }
    ]
}

有没有办法将重新映射烧录到 dojo 构建中,以便使用我的包中的任何模块都会自动使用我的 dojo/dijit/dojox 模块,而不是本地版本的 dojo 中加载的模块?如果是这样,个人资料会是什么样子?如果可能的话,我希望消费者能够做这样的事情:

<html>
<head>
    <script src="some/differnt/version/of/dojo.js" type="text/javascript" data-dojo-config="config settings"></script>
    <script type="text/javascript">
        // For legacy syntax users:
        dojo.registerModulePath("hisPackage", "http://somedomain.com/scripts/myPackage");
        dojo.require("hisPackage.HisModule");

        dojo.ready(function() {
            // do stuff
        });

        // Or for AMD users:
        require(["http://somedomain.com/scripts/myPackage/MyModule"], function(HisModule) {
            // do stuff
        }
    </script>
</head>
<body></body>
</html>

预先感谢您的帮助。

最佳答案

您是否在 dojoConfig 中尝试过此操作

var dojoConfig = { ...
    packages: [
        {name:'dojo',location:'//ajax.googleapis.com/ajax/libs/dojo/1.9.2/dojo/'},
        {name:'dijit',location:'//ajax.googleapis.com/ajax/libs/dojo/1.9.2/dijit/'},
        'dojotut'
    ]
...
}

关于javascript - 将包重新映射到 dojo 构建中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18777349/

相关文章:

javascript - 如何在悬停时更改另一个链接的颜色?

javascript - JQuery UI 自动完成字母顺序,然后是匹配项

dojo - 以编程方式将新的 Dojo AccordionPane 添加到现有 AccordionContainer

javascript - Dojo 构建 css 和自定义 javascript

Dojo 构建配置文件没有 dojo 层 (>1.7)

javascript - ajax 'delete' Rails 按钮

javascript - 将 JavaScript 生成的图像上传到 Django

php - 如何在不创建另一个新标签或新浏览器窗口的情况下在同一网页中播放 MPG 视频/音频文件?

javascript - 如何使用 dojo 约束对象来自定义 dojo TextBox 或 NumberTextBox 中 IP 地址的文本输入字段

dojo - 使用 dojo build 将我所有的自定义 JS 合并到一个文件中