Shim - 如何加载包含点的文件

时间:2013-09-05 13:56:23

标签: javascript requirejs

与主题一样。我的文件结构是:

js/ 
 |- bootstrap
 |   |- module1
 |   |- module2
 |
 |- jquery.min.js
 |- main.js

我的main.js文件是

requirejs.config({

    paths: {
        dropdowns : 'bootstrap/module1'
        ,fixes : 'bootstrap/module1'
    }
    ,shim: {
        'jquery.min' : ['jquery']
    }
});

requirejs(['jquery', 'dropdowns', 'fixes'], function ( $, Dropdowns, Fixes ) {

    console.log( $ );
    var fixes = new Fixes();

});

现在......它在控制台中抛出以下错误:

GET http://myurl/myapp/js/jquery.js 404 (Not Found) 

因为我们可以看到它用垫片松开了点。我的问题是“如何加载像'jquery.min.js'这样的文件,在.js部分之前是哪些点?”

2 个答案:

答案 0 :(得分:0)

这不是您加载名为jquery.min的文件的方式。这句话说jquery.min依赖于jquery,这没有多大意义。

    'jquery.min' : ['jquery']

由于jQuery定义了一个AMD模块,你应该尝试使用它来指定路径

requirejs.config({

    paths: {
        dropdowns : 'bootstrap/module1'
        ,fixes : 'bootstrap/module1'
        ,jquery: 'jquery.min'
   }
});

这可能会给出更明确的解释http://requirejs.org/docs/jquery.html

答案 1 :(得分:0)

如果您只是想说“请求'jquery'模块,从'jquery.min.js'加载它”,那么您的配置应如下所示:

requirejs.config({

paths: {
    dropdowns : 'bootstrap/module1'
    ,fixes : 'bootstrap/module1'
    ,jquery: 'jquery.min'
}

});

如果你需要说你的其他模块需要jquery,那么垫片会发挥作用:

shim: {
    dropdowns: {
        deps: ['jquery']
    },
    fixes_validate: {
        deps: ['jquery']
    }
}

有关shimRequirejs why and when to use shim config

的详细信息,请参阅此答案