一个SeaJs集成jQuery方案

发布 : 2018-03-30 分类 : WEB 浏览 :

先引用一句话:

首先声明这是个万人坑,不要怨恨苦恼,不要垂头丧气,一定要相信希望就在前方,未来一片光明!
https://github.com/seajs/seajs/issues/930

问题很简单,就是require('jquery')出现undefined的情况,刚接触SeaJs的我也喜闻乐见的遇到了这个问题,相信所有人应该都遇到过,至于如何解决网上也有很多解决方案了,就不多赘述了,比如这里: https://www.zhihu.com/question/21703739

打开jQuery源码会发现jQuery有对AMD规范的兼容代码:

1
2
3
4
5
if ( typeof define === "function" && define.amd ) {
define( "jquery", [], function() {
return jQuery;
});
}

既然SeaJs是CMD规范,并且SeaJs也提供了判定当前页面是否有 CMD 模块加载器的方法define.cmd,如下图:

那么结合起来将AMD兼容代码改为CMD兼容代码即可,所以首先找到jQuery当中的相关代码,将其改为SeaJs定义模块的方式即可:

1
2
3
4
5
if ( typeof define === "function" && define.cmd ) {
define(function() {
return jQuery;
});
}

同样的道理,不仅仅是jQuery,大部分框架都可以这样修改实现CMD规范的兼容。

本文作者 : Richex
原文链接 : https://blog.richex.cn/434.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

欢迎打赏

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹