0

我在尝试为我组织中的另一个团队编写的一些 javascript 代码创建 RequireJS shim 时遇到问题。该脚本通过一个 noraml HTML 脚本加载,如下所示:

<script src="MyCustomModule.js" type="text/javascript"></script>

我的 main.js 包含以下内容:

requirejs.config({
    paths: { 'text': 'durandal/amd/text' },
    shim: {
        'MyCustomModule': { exports: 'My.Custom.Module' }
    }
});

而且我尝试过以多种方式访问​​自定义模块,但这是我当前的代码:

define(['MyCustomModule'], function (require, MyCustomModule) {
 ...
}

但是每次页面/应用程序加载时,我都会从 RequireJS 收到一个错误,表明它无法加载app/MyCustomModule.js(我可以在控制台中看到 404 错误,它试图从服务器请求文件)。我究竟做错了什么?

4

1 回答 1

1

您还需要MyCustomModule包括paths

requirejs.config({
    paths: {
        'text': 'durandal/amd/text'
        'MyCustomModule': 'path/to/MyCustomModule'
    },
    shim: {
        'MyCustomModule': {
            exports: 'My.Custom.Module'
        }
    }
});

如果您不这样做,define(['MyCustomModule'] (...)将在该位置查找依赖baseUrl项,在您的情况下:app/MyCustomModule.


换句话说:shim不能“拾取” RequireJS 未加载的全局变量。

于 2013-07-17T21:25:00.943 回答