signalR 未定义 - 无法在 aspnet 核心 Web 应用程序中解析 signalR

signalR is undefined - unable to resolve signalR in aspnet core web app

我不明白为什么我似乎无法在我的 aspnet 核心应用程序中解析 SignalR 客户端库。我已经包含了在 index.html 中引用的库,但是当 javascript 库没有看到引用时。

使用 VS2019 和 .net core 3.0 创建了一个默认的 React 项目https://github.com/rohitisinhk/signalRIssue

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "provider": "unpkg",
      "library": "@aspnet/signalr@1.1.4",
      "destination": "lib/@aspnet/signalr/",
      "files": [
        "dist/browser/signalr.js",
        "dist/browser/signalr.js.map",
        "dist/browser/signalr.min.js",
        "dist/browser/signalr.min.js.map"
      ]
    }
  ]
}

在 html 文件中,我引用了 signalr.js https://github.com/rohitisinhk/signalRIssue/blob/master/SignalRWebApp/ClientApp/public/index.html

<script src="/lib/@aspnet/signalr/dist/browser/signalr.js"></script>

但是在 javascript 文件中我似乎无法解析 signalR

https://github.com/rohitisinhk/signalRIssue/blob/master/SignalRWebApp/ClientApp/src/index.js

const signalRConst = signalR;
  1. 请注意,您正在使用 libman 管理 signalR 库,它将文件恢复到 lib/@aspnet/signalr/,因此,npm 不了解 signalR 库。

    如果你更喜欢 libman 而不是 npm,你可以将 signalR 更改为 window.signalR

    const signalRConst = window.signalR;
    

    因为您要将文件还原到 lib/@aspnet/signalr/ 而不是 wwwroot/lib/@aspnet/signalr/,也不要忘记提供文件夹 lib/**/*

    [=35 中的静态文件=]
  2. 或者您可以使用 npm 来管理依赖关系:

    > cd ClientApp
    > npm install @aspnet/signalr --save
    

    现在您可以通过

    获得 signalR
    import * as signalR from "@aspnet/signalr";