RequireJS, Shim,依赖不能正确加载

RequireJS, Shim, dependencies not properly loading

本文关键字:加载 依赖 Shim RequireJS 不能      更新时间:2023-09-26

我一直在做一个项目,它比我习惯的有更多的前端脚本,我决定使用RequireJS来保持它的组织。在折腾了一整夜之后,我仍然有一些问题,某些依赖项似乎在事实之后才加载。

例如,Sammy需要jQuery才能工作。刷新我的应用会出现" Sammy, function undefined "之类的错误。Require函数在jQuery加载之前执行吗?

需要配置:

    require.config({
        paths: {
            'jquery': 'vendor/jquery.2.min',
            'sammy': 'vendor/sammy',
        },
        shim: {
            'jquery': {
                debs: [],
                exports: '$'
            },
            'sammy': {
                debs: ['jquery'],
                exports: 'Sammy'
            }
            ...

对于我的导航:

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

在我大约10%的测试中,当点击Sammy功能时,应用程序会弹出以下内容:

Uncaught ReferenceError: jQuery is not defined sammy.js:2120
Uncaught TypeError: undefined is not a function 
RequireJS的工作方式让我迷惑不解。我错过了什么?

您的配置中有一个错别字,正确的属性名称应该是deps,而不是文档中指定的debs

'jquery': {
    deps: [],
    exports: '$'
},
'sammy': {
    deps: ['jquery'],
    exports: 'Sammy'
}