【问题标题】:SignalR on Webpack and TypeScript: cannot find module './NodeHttpClient'Webpack 和 TypeScript 上的 SignalR:找不到模块“./NodeHttpClient”
【发布时间】:2019-05-12 23:38:39
【问题描述】:

我正在尝试在 Angular 应用中设置 SignalR 客户端。有 Webpack 可以完成这项工作。当然还有 TypeScript。

Package.json 是

{
  "private": true,
  "version": "0.0.0",
  "scripts": {
    "test": "karma start ClientApp/test/karma.conf.js"
  },
  "devDependencies" " { ... }
  "dependencies": {
    "@aspnet/signalr": "^1.1.0"
  }
}

TypeScript 代码是:

import { HubConnectionBuilder } from '@aspnet/signalr';

@Component({
    selector: 'stream-details',
    templateUrl: './stream-details.component.html'
})
export class StreamDetailsComponent implements OnInit {
    @Input() summary: any;

constructor(private deviceService: StreamService) {
}

ngOnInit() {

    let connection = new HubConnectionBuilder()
        .withUrl('/streamingHub')
        .build()

    connection
        .start()
        .then(() => connection.stream('SubscribeToStream', 'stream123'));
}
}

应用运行时报错:

NodeInvocationException:由于错误,预渲染失败:错误:找不到模块'./NodeHttpClient'

为什么不包含这个 NodeHttpClient.js 文件?我错过了什么?

【问题讨论】:

    标签: angular typescript webpack signalr signalr.client


    【解决方案1】:

    这个问题现在仍然存在。 github 上还有一个issue。问题已解决,但根据我的观察,问题仍然存在。

    【讨论】:

      【解决方案2】:

      将您的 @aspnet/signalr 版本降级到 1.0.0 以解决问题。

      【讨论】:

      • 是的,这行得通。这是一个解决方案,它让我畅通无阻。但从长远来看并不是用户想要的。
      【解决方案3】:

      包@aspnet/signalr 1.1.0 不再显示此问题。我无法在新的 Angular 应用程序上重现它。

      【讨论】:

      • 不适用于 1.1.0,同样的错误,最后一个工作版本是 npm install @aspnet/signalr@1.0.4
      • @pingo 那么你唯一的机会就是在官方 repo 上填写一个问题,并提供一个可以重现错误的示例应用程序。
      猜你喜欢
      • 2016-11-10
      • 2016-01-20
      • 2020-04-25
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      • 2017-09-08
      • 2015-11-10
      相关资源
      最近更新 更多