据我了解,您可以使用带有Requirejs的填充程序来动态加载未在自己的文件中定义为模块的脚本。那么为什么我不能得到这样一个简单的脚本呢?
这是我的非工作示例:
/libs/test.js:
var a = 'Hello from TestJS';
main.js
require.config({
shim: {
'./libs/test': { exports: 'test'}
}
}
然后在控制台中尝试:
require(['./libs/test'], function(t) { console.log(t); })
哪个产生undefined
。
那么如何掌握a
?
我可以从网络选项卡中看到test.js是从服务器加载的。我有一种感觉我的垫片配置被忽略了,requirejs只是在没有垫片的情况下加载它。因此,如果我只是做console.log(window.a)
,我会看到来自TestJS'你好。
答案 0 :(得分:2)
使用您为test.js
显示的代码,您必须指定导出的符号为a
,而不是test
,因为后者永远不会在test.js
中定义:< / p>
shim: {
'./libs/test': { exports: 'a'}
}