Изменение целевой версии кода TypeScript приводит к тому, что компилятор TypeScript больше не находит модуль - PullRequest
2 голосов
/ 17 февраля 2020

У меня установлен сигнализатор через npm в Visual Studio 2019. Когда у меня есть цель на ES6 в опциях моего компилятора, я получаю ошибку TS2307 (TS) Cannot find mogule '@microsoft/signalr. Когда я изменяю цель на ES5, я не получаю ошибку, но в браузере я получите тогда исключение Uncaught ReferenceError: exports is not defined

Это мой tsconfig:

{
  "compilerOptions": {
    "target": "ES6",
    "sourceMap": true, 
  },

  "compileOnSave": true, 
}

Ответы [ 2 ]

0 голосов
/ 15 марта 2020

Если вы будете следовать руководству на сайте Microsoft для использования SignalR с Typescript, оно настроит вас на Webpack. Затем вы устанавливаете свой tsconfig. json на "moduleResolution": "node", как упоминал Тициан Черникова-Драгомир.

{
    "compilerOptions": {
        "target": "es6",
        "moduleResolution": "node"
    }
}
0 голосов
/ 17 февраля 2020

Параметр module имеет другое значение по умолчанию на основе target, а параметр moduleResolution имеет другое значение по умолчанию на основе параметра module. Из документов :

--module target === "ES3" or "ES5" ? "CommonJS" : "ES6"

--moduleResolution module === "AMD" or "System" or "ES6" ? "Classic" : "Node"

Это то, что приводит к изменение в поведении. Вероятно, вы должны указать эти параметры явно. Что, вероятно, будет работать для вашего случая:

{
  "compilerOptions": {
    "target": "ES6",
    "sourceMap": true, 
    "module": "CommonJS", 
    "moduleResolution": "node"
  },

  "compileOnSave": true, 
}

...