我正在尝试使用requirejs来加载带有CDN的jqueryui,这是我的配置:
paths:
jqueryui: "http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"
shim:
jqueryui:
deps: ['jquery']
现在在我的主模块中我只使用require ['jqueryui'],几乎是标准方式,其他一切从我的私有CDN加载很好,但requirejs也尝试从私有CDN加载jqueryui,似乎认为jqueryui是一个本地模块。不确定有什么问题。另外,我使用requirejs-rails gem作为require.js的包装。
答案 0 :(得分:3)
在具有远程模块引用(如CDN内容)的项目上运行RequireJS优化器(r.js)时,应在构建配置中使用empty:
方案。
您可能希望从内容交付网络(CDN)或其他域上的任何其他服务器加载脚本。 [...]但是,您更可能不希望在构建中包含该资源。如果脚本没有任何依赖关系,或者您不想包含其依赖关系或将以其他方式包含它们,那么您可以在路径配置中使用特殊的“empty:”方案,只是在执行时跳过该文件优化
请尝试在您的构建配置文件中指定:
paths: {
jqueryui: "empty:"
}
答案 1 :(得分:1)
这里有requirejs-rails的作者。这似乎是r.js中的回归,它应该自动将empty:
替换为配置中的CDN URL。在r.js 2.0及更高版本中发布jrburke/r.js#163时,删除了requirejs-rails对empty:
的显式替换。