Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用Bower、Jquery UI和RequireJS找到Jquery UI依赖项_Javascript_Jquery_Jquery Ui_Requirejs_Bower - Fatal编程技术网

Javascript 无法使用Bower、Jquery UI和RequireJS找到Jquery UI依赖项

Javascript 无法使用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

我在一个项目中使用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.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


希望这能有所帮助。

您找到了解决方法吗?我正试图解决同样的问题