首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery用于signalR的选择性模块?

jQuery用于signalR的选择性模块?
EN

Stack Overflow用户
提问于 2017-03-23 13:38:43
回答 1查看 173关注 0票数 1

我已经使用jQuery安装了最新版本的npm install jQuery --save

文件夹。

由于signalr (客户端)依赖jQuery -我能够做到这一点:

代码语言:javascript
复制
var jQuery = require('jquery'); // — All jQuery modules
window.$ = window.jQuery=jQuery;
require('./jquery.signalR-2.2.1.min.js'); // works since it searches window.jQuery

最后一个包(包括我的代码,小型化)是~164 KB,其中大部分是jQuery,在这里我不需要所有jQuery模块!

因此,我开始加载选择性模块:

代码语言:javascript
复制
var jQuery = require('jquery/src/core');
window.$ = window.jQuery=jQuery;
require('./jquery.signalR-2.2.1.min.js');

错误: Uncaught : v.fn.init不是构造函数

我补充说:

代码语言:javascript
复制
var jQuery = require('jquery/src/core');
require('jquery/src/core/init');
window.$ = window.jQuery=jQuery;
require('./jquery.signalR-2.2.1.js');

不同的错误: Uncaught:_pageWindow.load不是一个函数

现在我不知道应该加载哪些附加模块。

问题:

我应该加载哪个jQuery的(3.1.1)模块(以及按什么顺序)才能让signalR (v2.2.1)工作?

我不想仅仅为了运行signalr而将所有jQuery的无关函数加载到我的包中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-26 10:53:05

所以你想要一个精简的jQuery。正如jQuery的README.md所说,有些模块可以被排除在外。我试图找出模块是否可以被排除在外,并将它们列在下面:

  • ×ajax$.ajax存在于signalR中。
  • ×ajax/xhr:通常使用ajax
  • ×ajax/script:依赖于ajax/jsonp
  • ×ajax/jsonpjsonp存在于signalR中。
  • css:在signalR中找不到css
  • css/showHide.show().hide().toggle().css()在signalR中找不到。
  • ×不推荐的:在jq3.0中找到.bind(),这是不推荐的。
  • 维度:找不到.width().height()
  • 效应:找不到.animate().slideUp().hide("slow")
  • ×事件:找到.on()
  • event/alias:√似乎可以排除在外,不确定。
  • event/focusin:√没有找到相关的方法。
  • ×event/trigger:发现了.triggerHandler()
  • 偏移量:找不到相关的方法。
  • 包装:找不到相关的方法。
  • 核心/就绪:找不到相关的方法。
  • ×递延.Deferred
  • exports/global:√由你或webpack处理。
  • ×exports/amd:应由webpack发现
  • :不确定,但很有可能。

总之,可以排除css/showHidedimensions,css、event/aliasevent/focusineffectsevent/aliasevent/focusin偏移量wrapcore/readyexports/globalsizzleE 2123

现在让我们构建一个简化的jQuery。

  1. 下载下载jQuery3.1.1zip并输入它
  2. npm i
  3. npm i -g grunt
  4. grunt custom:-css,-css/-showHide,-dimensions,-effects,-event/alias,-event/focusin,-offset,-wrap,-core/ready,-exports/global,-sizzle

现在我们在dist目录中得到了jquery.js和jquery.min.js(50 in )。将其复制到项目中并按以下方式更改代码:

代码语言:javascript
复制
var jQuery = require('./jquery.min.js');
window.$ = window.jQuery=jQuery;
require('./jquery.signalR-2.2.1.min.js');

如果您不想自己构建,我将输出文件放在这里:(如果不可用,请自己构建)

http://blackmiaool.com/res/share/jquery.js

http://blackmiaool.com/res/share/jquery.min.js

如果event/alias没有按预期工作,那么试着使用完整的jQuery,并考虑包括jQuery和Signes模块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42977699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档