Javascript 无法使用Bower、Jquery UI和RequireJS找到Jquery UI依赖项
我在一个项目中使用jQueryUI、Bower和RequireJS,在配置jQueryUI和Require时遇到困难。基本上,jQueryUI试图在根目录中找到它的依赖项,而不是它们所在的位置,这给了我一个错误 据我所知,从1.11开始,Jquery UI支持AMD,并且文档中指出,它可以使用如下目录: ├── index.html ├── js │ ├── app.js │ ├── jquery-ui │ │ ├── accordion.js │ │ ├── autocomplete.js │ │ ├── button.js │ │ ├── core.js │ │ ├── datepicker.js │ │ ├── dialog.js │ │ └── ... │ ├── jquery.js │ └── require.js 然而,使用Bower,目录更像 ├── index.html ├── js │ ├── app.js |── bower_componenents │ ├── jquery-ui │ │ ├── accordion.js │ │ ├── autocomplete.js │ │ ├── button.js │ │ ├── core.js │ │ ├── datepicker.js │ │ ├── dialog.js │ ├── jquery │ │ ├── jquery.js │ └── require │ │ ├── require.jsJavascript 无法使用Bower、Jquery UI和RequireJS找到Jquery UI依赖项,javascript,jquery,jquery-ui,requirejs,bower,Javascript,Jquery,Jquery Ui,Requirejs,Bower,我在一个项目中使用jQueryUI、Bower和RequireJS,在配置jQueryUI和Require时遇到困难。基本上,jQueryUI试图在根目录中找到它的依赖项,而不是它们所在的位置,这给了我一个错误 据我所知,从1.11开始,Jquery UI支持AMD,并且文档中指出,它可以使用如下目录: ├── index.html ├── js │ ├── app.js │ ├── jquery-ui │ │ ├── accordion.js
如何配置Require以使Jquery UI能够找到其依赖项?我通过在requirejs配置中将bower\u组件与path属性混淆,使其部分工作。但是内部jquerylib假设所有的javascript文件都集中在同一个目录结构的相对引用中,所以它仍然不起作用
我正在考虑使用Grunt将依赖项复制到我的js目录下,以便所有内容都位于相同的baseUrl上。不太理想,但它可能会使以后使用r.js或gulp更容易。我只是设置错误。我把我的配置文件改为
require.config({
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
backboneLocalstorage: {
deps: ['backbone'],
exports: 'Store'
},
paths: {
jquery: '../bower_components/jquery/dist/jquery',
'jquery-ui': '../bower_components/jquery-ui/jquery-ui',
underscore: '../bower_components/underscore/underscore',
backbone: '../bower_components/backbone/backbone',
backboneLocalstorage: '../bower_components/backbone.localStorage/backbone.localStorage',
moment: '../bower_components/moment/moment',
text: '../bower_components/requirejs-text/text'
}
});
require(['backbone', 'views/app-view', 'routers/router'],
function (Backbone, AppView, Workspace ) {
new Workspace();
Backbone.history.start();
new AppView();
});
然后在我的主干视图中定义如下
define([
'collections/todos-collection',
'views/todo-view',
'common',
'backbone',
'jquery',
'jquery-ui'
], function(Todos, TodoView, Common, Backbone, $){
如您所见,jQueryUI将自身附加到$symbol
希望这能有所帮助。您找到了解决方法吗?我正试图解决同样的问题