簡體   English   中英

帶有打字稿和信號器的.net Core 2.2

[英].net core 2.2 with typescript and signalr

我想擁有帶有TypeScript和Signalr的ASP.NET core 2.2,但我不知道如何正確設置項目。

我已經使用npm install @aspnet/signalr將@ aspnet / signalr npm軟件包npm install @aspnet/signalr到項目根目錄。 所以我的項目根目錄如下:

Controllers/
Models/
node_modules/
Properties/
TypeScript/
Views/
wwwroot/
appsettings.Development.json
appsettings.json
MyProject.csproj
package-lock.json
package.json
Program.cs
Startup.cs
tsconfig.json

擁有此TypeScript / home.ts文件:

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

const connection = new signalR.HubConnectionBuilder().withUrl("/gameHub").build();


connection.on("ReceiveMessage", function (user, color) {
    console.log("color " + color + "; user " + user);
    let canvas = <HTMLCanvasElement>document.getElementById(user).getElementsByClassName("board")[0];
    let context = canvas.getContext("2d");
    context.fillStyle = color;
    context.fillRect(0, 0, 200, 200);
});

最后是我的tsconfig.json文件:

{
  "compileOnSave": true,
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es2017",
    "outDir": "wwwroot/js"
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

當我在tsconfig.json中使用"target": "es2017", ,VS無法找到@ aspnet / signalr並且我無法運行項目。 當我將其切換為"target": "es5", ,VS可以找到@ aspnet / signalr,但是它會生成帶有以下行的Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "__esModule", { value: true }); 並在瀏覽器中引發錯誤。

我猜我的tsconfig.json沒有正確設置。 另外,如果可能的話,我想在瀏覽器中使用ES6模塊( https://www.sitepoint.com/using-es-modules/

嘗試遵循本教程

es5 ,您必須將es5為在瀏覽器的Web項目中運行。 教程向您展示了如何使用webpack設置打字稿,因為我們需要將ts編譯為js

如果您需要任何幫助,請告訴我

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM