terseBanner icon indicating copy to clipboard operation
terseBanner copied to clipboard

如何使用requireJS来加载?

Open BryanAdamss opened this issue 7 years ago • 2 comments

作者你好,你的插件很好用,我一直在使用,但是最近出了点小问题。 最近我在尝试使用requireJs来管理我的js,当我加载你的插件时,总是会报错(此时没有使用shim),提示我Script error for "default-style", needed by: jquery。 我尝试添加了shim(如下),依旧会报错,不过报的是$(...).terseBanner is not a function。 我查看了你的源代码,发现是使用了AMD定义的(使用了AMD定义的,应该不需要shim才对)。 不知道是我使用错了,还是什么其他原因,望指教。 另外如果可以,希望能添加一个使用amd的demo,方便新手使用。

var configs = {// 默认配置
    baseUrl: 'js/lib',
    paths: {
        domReady: 'domReady',
        banner: '../vendor/jquery.terseBanner.min',
        jquery:'jquery-2.2.4.min'
    },
    shim: {
        banner: {
            deps: ['jquery']
        }
    }
};
require.config(configs);// 加载配置
require([ 'domReady!','jquery', 'banner'], function (doc,$,b) {// 使用domReady!后,回调会在dom准备好后才被调用
    console.log($,doc,b);// 3个都能打印出来
   console.log($.fn.tersebanner);// undefined
    $('.Banner').terseBanner({// 提示找不到terseBanner
        animation: "fade",
        auto: 3000
    });
});

BryanAdamss avatar Jul 19 '17 06:07 BryanAdamss

真是抱歉! 这个插件在2.0版本重构的时候,因为要拆分模块使用了requireJs,是我第一次使用requireJS,也是一知半解,在AMD文件加载规范方面犯了一些低级错误; 现已修正,修改之后插件,只保留了合并的js文件中的AMD加载代码,现在requireJS引入之后可以正常使用了

happyfreelife avatar Aug 02 '17 09:08 happyfreelife

嗯,我也遇到这个问题了,我的解决办法是把代码中的require函数重命名,暂时解决了加载问题

maijianhu avatar Aug 03 '17 00:08 maijianhu