我是使用SignalR的新手。我已经在服务器端设置了Asp.Net(不是核心)SignalR。
现在,在已经基于React(使用Typescript)构建的客户端上,我正在尝试连接到各种集线器。
我从以下位置安装了SignalR版本:
npm安装信号器
这些是我的代码中的导入:
import * as React from "react";
import $ from "jquery";
import { observer } from "mobx-react";
import signalr from "signalr";
但是,加载jquery.signalr.js时,我始终遇到此错误:
未找到jQuery。请确保在SignalR客户端JavaScript文件之前引用jQuery
我已经尝试了很多在线发布的解决方案,例如尝试在加载JS之前添加这些行(甚至实际上将其添加到jquery.signalR.js内)
import $ from 'jquery';
window.jQuery = $;
var $ = require("jquery")
等
但是这些都不起作用。
我也更新了装载机,但是没有运气。
rules: [
{
test: require.resolve("jquery"),
use: [
{
loader: "expose-loader",
query: "jQuery",
},
{
loader: "expose-loader",
query: "$",
},
]
}]
我还更新了signalr.js文件,因为它无法解析正确的jquery.js文件。
我对此进行了如下更新。
另外,请注意,在进入signalr.js文件之前,已经定义了$,但是最初下面的函数具有签名
(function ($, window, undefined) {
我将其更改为下面的另一个变量。现在$至少已定义,但是其类型解析为“功能”,它是一个字符串,而不是实际函数。
/// <reference path="../jquery/dist/jquery.min.js" />
/// <reference path="../jquery/dist/jquery.js" />
/// <reference path="jquery.signalR.version.js" />
(function (k, window, undefined) {
如果有人能告诉我在这里做什么和我在做什么错,我将不胜感激。
谢谢。