我在尝试为我的组织中的另一个团队编写的某些javascript代码创建RequireJS垫片时遇到问题。该脚本通过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错误,它试图从服务器请求文件) 。我做错了什么?
答案 0 :(得分: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加载的全局变量。