是的,我知道这里已经无限问了这个问题,而且我已经知道使用requirejs的一般规则,一切调用define()必须通过单个脚本标记,如:
<script src="js/lib/require.js" data-main="js/main"></script>
但我发现自己处于这样一个位置:对于这个常见错误提供的一般建议不足以解决我的特定问题,从表面上看似乎很简单。
我正在开发一个angular,requirejs和WinJS(只是为了让事情变得有趣)app,并且遇到了这个错误的问题。我的主html文件确实使用单独的脚本标记加载了其他几个JavaScript源文件,但没有一个调用define()。我检查了。两次。好的,三次。 应用程序中的所有其他JS源文件都通过类似于上面的单个脚本标记加载。但我仍然得到这个错误。
我尝试给每个app模块一个requirejs标识符:
define('myModule', ['dep1', 'dep2', etc.], function(dep1, dep2) {
return angular.module('app.mymod', ['winjs', etc.]);
});
但是使用这种方法 angular 模块依赖于上面定义的 angular 模块无法解决该依赖关系(尽管requirejs现在非常高兴)。
在requirejs外部加载的三个JS文件是:
<script src="//Microsoft.WinJS.2.0/js/base.js"></script>
<script src="//Microsoft.WinJS.2.0/js/ui.js"></script>
<script src="js/lib/dynamic-content-shim.js"></script>
后者修补WinJS运行时以允许动态内容创建。 WinJS运行时确实在自己的命名空间中公开了一个define函数,但它与requirejs完全无关。
那是什么给出的?