【问题标题】:Loading zepto modules with requirejs使用 requirejs 加载 zepto 模块
【发布时间】:2014-12-15 23:07:22
【问题描述】:

我是 RequireJS 的新手,我正在尝试了解其使用背后的逻辑...

我在html脚本标签之间有以下脚本

requirejs.config(
    {shim: {
        'zepto': ['//cdnjs.cloudflare.com/ajax/libs/zepto/1.1.4/zepto.min.js'],
        'js/zepto.addon.min' : 'zepto',
        'js/zepto.swipeslide' : ['zepto', 'js/zepto.addon.min']
    }}
    );

define(['//cdnjs.cloudflare.com/ajax/libs/zepto/1.1.4/zepto.min.js','js/zepto.addon.min','js/zepto.swipeslide'],function(){
    console.log('this', this, 'arguments', arguments);
});`

我只是想在插件之前加载必要的 zepto 文件。但是我得到了一个

未捕获的错误:不匹配的匿名定义()模块:函数(){ console.log('this', this, 'arguments', arguments); }

我正在查找 requirejs 文档下的错误,但它并没有说明这是什么以及为什么会发生这种情况。

你们能用外行的话为我分解一下这是怎么回事吗?

【问题讨论】:

    标签: javascript requirejs zepto


    【解决方案1】:

    这种设置没有多大意义。您应该定义您的路径,定义您的 shim,然后按名称要求这些模块。

    requirejs.config({
        // setup global dependencies
        shim: {
            'addon' : 'zepto',
            'swipeslide' : ['zepto', 'addon']
        },
        // define module paths
        paths: {
            'zepto': '//cdnjs.cloudflare.com/ajax/libs/zepto/1.1.4/zepto.min',
            'addon': 'js/zepto.addon.min',
            'swipeslide': 'js/zepto.swipeslide'
        }
    });
    
    define(['zepto', 'addon', 'swipeslide'], function($) {
        console.log('this', this, 'arguments', arguments);
    });
    

    【讨论】:

    • 所以你是说“shims”就像“别名”,当你定义它们时链接你对脚本的依赖关系?
    • 也许吧?我不这么认为。 pathsmodule:path 形式的别名。 shimsmodule:[dependencies] 形式的依赖定义。垫片适用于需要以相对于其他依赖项的特定顺序需要的包。
    • @Mathletics....我尝试了您的代码,但由于某种原因,函数中的参数都返回“未定义”...不需要脚本变量的范围吗?
    • 什么意思? arguments 又回来了 [undefined, undefined, undefined]?这些路径是否映射到实际存在的事物?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多