我已经使用jQuery安装了最新版本的npm install jQuery --save。
由于signalr (客户端)依赖jQuery -我能够做到这一点:
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模块!
因此,我开始加载选择性模块:
var jQuery = require('jquery/src/core');
window.$ = window.jQuery=jQuery;
require('./jquery.signalR-2.2.1.min.js');错误: Uncaught : v.fn.init不是构造函数
我补充说:
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的无关函数加载到我的包中。
发布于 2017-03-26 10:53:05
所以你想要一个精简的jQuery。正如jQuery的README.md所说,有些模块可以被排除在外。我试图找出模块是否可以被排除在外,并将它们列在下面:
$.ajax存在于signalR中。jsonp存在于signalR中。css。.show(),.hide(),.toggle()和.css()在signalR中找不到。.bind(),这是不推荐的。.width()和.height()。.animate()、.slideUp()和.hide("slow")。.on()。.triggerHandler()。.Deferred。总之,可以排除css/showHide,dimensions,css、event/alias,event/focusin,effects、event/alias,event/focusin,偏移量、wrap、core/ready,exports/global和sizzleE 2123。
现在让我们构建一个简化的jQuery。
npm inpm i -g gruntgrunt 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 )。将其复制到项目中并按以下方式更改代码:
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模块。
https://stackoverflow.com/questions/42977699
复制相似问题