Не могу скомпилировать SignalR + TypeScript с плагином MessagePack - PullRequest
0 голосов
/ 03 февраля 2019

Я добился успеха, создав небольшое приложение с использованием AspNetCore 2.2, SignalR и внешнего интерфейса TypeScript.Пакет создается через WebPack.

Я хотел бы попробовать включить плагин протокола MessagePack.Однако документы о том, как установить его, кажутся недостаточно точными.Хотя компиляция из командной строки (npm run build) проходит нормально, при запуске приложения для отладки оно не компилируется, потому что в коде TypeScript отсутствует что-то:

Ошибка TS2688 Build: Cannotнайти файл определения типа для 'узла'.C: \ ... \ node_modules @ aspnet \ signalr-protocol-msgpack \ dist \ esm \ MessagePackHubProtocol.d.ts 1

Ошибка TS2580 Сборка: не удается найти имя «Буфер».Вам нужно установить определения типа для узла?Попробуйте npm i @types/node, а затем добавьте node в поле типов в вашем файле tsconfig.C: \ ... \ node_modules @ aspnet \ signalr-protocol-msgpack \ dist \ esm \ MessagePackHubProtocol.d.ts 16

Кстати, если я последую этому совету, все пойдет дажехуже из-за присутствия "setTimeout" в моем коде.По сути, кажется, что «узел» setTimeout переопределяет «окно», и их подписи не совпадают.

Вот package.json (без подсказки):

{
  "version": "1.0.0",
  "name": "asp.net",
  "private": true,
  "devDependencies": {
    "del": "2.2.0",
    "@types/jquery": "^3.3.29",
    "ts-loader": "^5.3.3",
    "typescript": "^3.2.2",
    "webpack": "^4.28.3",
    "webpack-cli": "^3.2.1",
    "webpack-merge-and-include-globally": "^2.1.14",
    "clean-webpack-plugin": "^1.0.0"
  },
  "dependencies": {
    "@aspnet/signalr": "^1.1.0",
    "@aspnet/signalr-protocol-msgpack": "^1.1.0",
    "axios": "^0.18.0",
    "bootstrap": "^4.2.1",
    "jquery": "^3.3.1"
  },
  "scripts": {
    "build": "webpack --mode=development",
    "watch": "webpack --mode=development --watch",
    "release": "webpack --mode=production",
    "test": "echo \"Error: no test specified\" && exit 1"
  }
}

Наконец, вот tsconfig.json:

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "lib": [ "es6", "dom" ]
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

Это я или где-то ошибка?

1 Ответ

0 голосов
/ 11 февраля 2019

Следите за развитием проблемы здесь: https://github.com/aspnet/AspNetCore/issues/7229

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...