typescript - 更改 TypeScript 代码的目标版本会导致 TypeScript 编译器不再找到该模块
问题描述
我在 Visual Studio 2019 中通过 npm 安装了信号器。当我的编译器选项中有 ES6 上的目标时,我收到错误TS2307 (TS) Cannot find mogule '@microsoft/signalr.
当我将目标更改为 ES5 时我没有收到错误,但在浏览器中我得到了异常Uncaught ReferenceError: exports is not defined
这是我的 tsconfig:
{
"compilerOptions": {
"target": "ES6",
"sourceMap": true,
},
"compileOnSave": true,
}
解决方案
该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,
}
推荐阅读
- javascript - jQuery切换 - 如何启用淡入淡出效果
- javascript - 样式化 LightningChart JS 图表
- powershell - 即使设置了 -whatif 属性,是否有办法将 powershell 日志记录到文本文件中?
- rest - JWT 好像不安全?不是吗?
- python - Pyqt5 小部件使用 GridLayout 转移到中心
- c - 我的 Cs50 问题集 2 代码存在随机字母变为空白的问题。我该如何解决?
- php - Laravel (cli) 使用 php 5.4 而不是 7
- javascript - 如何在javascript中添加事件监听器
- laravel - Laravel 注册中的自定义验证器
- javascript - 如何获取像“我的消息(“已发送”)”这样的字符串