RequireJS,Shim,依赖项未正确加载

Jor*_*org 2 javascript requirejs

我一直在研究一个比我习惯的前端脚本更多的项目,我决定使用RequireJS来保持它的整洁.在彻夜难眠之后,我仍然遇到一些问题,其中某些依赖关系似乎在事后加载.

例如,Sammy需要jQuery才能工作.刷新我的应用程序会导致"Sammy,函数未定义"的错误.是否在加载jQuery之前执行Require函数?

需要配置:

    require.config({
        paths: {
            'jquery': 'vendor/jquery.2.min',
            'sammy': 'vendor/sammy',
        },
        shim: {
            'jquery': {
                debs: [],
                exports: '$'
            },
            'sammy': {
                debs: ['jquery'],
                exports: 'Sammy'
            }
            ...
Run Code Online (Sandbox Code Playgroud)

至于我的导航:

define([
    'jquery',
    'sammy'
], function($, Sammy) {

    return Sammy(function() {
    ...
Run Code Online (Sandbox Code Playgroud)

在大约10%的测试中,在点击Sammy功能时,应用程序会出现以下情况:

Uncaught ReferenceError: jQuery is not defined sammy.js:2120
Uncaught TypeError: undefined is not a function 
Run Code Online (Sandbox Code Playgroud)

RequireJS的工作方式使我迷惑.我错过了什么?

jgi*_*ich 10

您的配置中有拼写错误,正确的属性名称将deps不是文档中debs指定的.

'jquery': {
    deps: [],
    exports: '$'
},
'sammy': {
    deps: ['jquery'],
    exports: 'Sammy'
}
Run Code Online (Sandbox Code Playgroud)