typescript - Vue 无法使用 Typescript 加载 SignalR Core

标签 typescript web vue.js signalr

我正在尝试在我的 Vue 应用程序中将 SignalR Core 与 @vue/cli 和 Typescript 一起使用。在我的组件中,我只是使用

import signalR from "@aspnet/signalr";

编译器告诉我一切都很好。 npm run servenpm run build 都告诉我一切正常。但是,一旦我尝试在浏览器中加载我的应用程序,就会出现以下错误:

Uncaught TypeError: Cannot set property 'signalR' of undefined

这发生在 signalr.js 内容的最开头:

(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global.signalR = factory());
}

似乎由于某种原因 global 未定义。我在 Vue 中导入库的方式有问题,还是 SignalR 团队不正确地导出了他们的类?

我也尝试过 const signalR = require("./signalr.js"),但这给了我同样的错误。

最佳答案

我不知道为什么,但罪魁祸首是

import signalR from "@aspnet/signalr";

如果我不使用包罗万象的导入并只导入我需要的类型,它工作正常:

import { HubConnection, HubConnectionBuilder } from "@aspnet/signalr";

signalR 的导出方式可能有问题,但我不知道是什么。

关于typescript - Vue 无法使用 Typescript 加载 SignalR Core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50359564/

相关文章:

Angular 惰性路由忽略父路径

javascript - TypeScript 100.0% 是如何用 TypeScript 编写的?

javascript - 如何使用 NestJS 创建带参数的嵌套路由

javascript - 当只用 JS 悬停时,如何在我的网站上显示一个元素?

html - 无法弄清楚如何将背景图像放入我的 <div> 工作正常

reactjs - 导入文件时用 typescript 开 Jest 会引发错误

web - 如何检测用户在网站上使用的是 Mac 还是 Windows

javascript - 使用 Vue js 进行 geocomplete -- 位置被删除

javascript - 从 Vuex Store 中的 action 中推送路由

javascript - 无法使用 Jest 和 babel-plugin-dynamic-import-node 测试动态导入的函数