tsc编译器和VS Code的语言服务之间的版本不匹配

时间:2016-09-15 07:13:57

标签: visual-studio-code

我刚刚开始使用Visual Studio Code,当我创建一个名为index.html的新文件时,我会看到此警告消息

全局安装的tsc编译器(1.0.3.0)与VS Code的语言服务(1.8.10)之间的版本不匹配

有人可以指导我解决这个问题。

这是严重还是我可以忽略。我用Google搜索但无法获得更多信息

由于

enter image description here

13 个答案:

答案 0 :(得分:28)

我将此添加到我的settings.json文件中,可通过preferences > Workspace Settings访问:

"typescript.tsdk": "node_modules/typescript/lib"

现在我不再收到此错误,并在屏幕的右下角显示我已安装的Typescript的当前版本。

答案 1 :(得分:17)

[更新] VS Code 1.6 now ships with TypeScript 2.0.3

我刚安装了最新的Typescript,目前为v.2.0.3,并在macOS Sierra上安装了VS Code v.1.5.3。出于某种原因,完全遵循官方文档并没有为我工作。

以下是我的工作方式:

全球安装最新版本后: npm i -g typescript,我将以下行添加到我的settings.json文件中(由cmd + ,打开):

"typescript.tsdk": "/usr/local/lib/node_modules/typescript/lib",

希望这有助于其他人。

[更新] 正如@ptpaterson在下面的评论中提到的,在Windows上路径为:"typescript.tsdk": "C:/Users/{user_name}/AppData/Roaming/npm/node_modules/typescript/lib/"

答案 2 :(得分:10)

您必须更改Visual Code正在使用的TypeScript版本以匹配您安装的版本:

https://code.visualstudio.com/docs/languages/typescript#_using-newer-typescript-versions

以上摘自链接:

  

如果您想使用较新版本的TypeScript,您可以定义指向包含TypeScript tsserver.js文件的目录的typescript.tsdk设置(文件>偏好设置>用户/工作区设置)。

     

您可以使用npm list typescript找到安装位置,tsserver.js通常位于lib文件夹下。

     

例如:

{
    "typescript.tsdk": "node_modules/typescript/lib"
}

答案 3 :(得分:9)

您必须更新您的Typescript安装并在之后重新启动Code:

npm install -g typescript

npm install -g typescript@1.8.10

如果消息有效,则不应再显示该消息。

答案 4 :(得分:8)

生成此错误是因为我在系统路径变量中引用了较旧的TypeScript安装:

C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\

删除此条目后,Visual Studio代码错误已解决。

但是,我的TypeScript文件无法转换,因为构建操作找不到tsc.exe文件。

安装SDK时(通过Visual Studio或通过手动*.visx安装),安装tsc.exe文件并更新PATH环境变量以引用此文件所在的文件夹(见上文)。

还有另一种方法可以使用node.js在Windows环境中转换文件:

  • 安装node.js.可以找到安装包here
  • 使用npm安装TypeScript:

    npm install -g typescript

    这会将TypeScript文件添加到您的个人资料AppData文件夹中:

    C:\Users\{your_user_name}\AppData\Roaming\npm\node_modules\typescript\lib

  • 配置Visual Studio代码用户 settings.json文件以引用此文件夹:

    {
    "typescript.tsdk": "C:\\Users\\{your_user_name}\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib"
    }
  • 添加/更新用户 PATH环境变量以引用包含tsc.cmd文件的文件夹:

    %USERPROFILE%\AppData\Roaming\npm

答案 5 :(得分:4)

上述解决方案都不适用于我 - 首先,这是我希望更新到最新版本的全局tsc。

在我做了一些调查后发现问题出在系统的PATH变量上; tsc.cmd (以及 tscserver.cmd )存在于以下位置:

  • c:\ Program Files \ nodejs - npm.exe和node.exe
  • %USERPROFILE%\ AppData \ Roaming \ npm - 全局包

您可以做的是处理环境\用户变量,以便首先从%USERPROFILE%解决 tsc 命令,而不是程序文件

快速&脏的方法只是从程序文件路径中删除 tsc.cmd tscserver.cmd

答案 6 :(得分:3)

安装typecript的v2.0.3是不够的......但是然后更新package.json上的版本依赖对我有用。

Npm命令:

npm install -g typescript@2.0.3

package.json更新了一行:

"typescript": "^2.0.3"

答案 7 :(得分:1)

全局安装TypeScript以跨工作区共享安装。在这种情况下,您使用npm install -g typescript@next安装它。

然后,您必须使用typescript.tsdk设置在setting.json文件(File -> Preferences -> Workspace Settings)上告诉VS Code安装位置。将typescript.tsdk设置为包含已安装的TypeScript模块的tsserver.js文件的lib文件夹的路径。

在Windows上: "typescript.tsdk": "C:/Users/<MyUser>/AppData/Roaming/npm/node_modules/typescript/lib"

在Mac上: "typescript.tsdk": "/usr/local/lib/node_modules/typescript/lib"

答案 8 :(得分:1)

安装VSCode 1.6.0修复了TypeScript版本不匹配警告消息。

答案 9 :(得分:1)

我遇到此问题的经验(在Mac OS X 10.12.2上的VSCode 1.8中)是因为我一直在使用NVM,而我的代码在NVM版本上运行,VSCode正在查看节点的系统安装

仔细检查您正在使用哪个npm安装来全局安装typescript。如果有疑问(在linux / mac上),请从命令行使用which tsc来验证VSCode使用的位置。

例如,如果我只是致电npm i -g typescriptnpm会解析为~/.nvm/versions/node/v6.9.1/bin/npm。我必须通过显式调用/usr/local/bin/npm i -g typescript来解决问题,因为VSCode默认在/usr/local/bin/node中查找节点。

答案 10 :(得分:0)

如果您应该在事后选择忽略,那么您可以通过偏好设置将其添加到settings.json文件中:

"typescript.check.tscVersion": false

根据VS Code 1.10.2中的评论:

  

检查全局安装TypeScript编译器(例如tsc)是否不同   使用过的TypeScript语言服务。

答案 11 :(得分:0)

您认为这是Microsoft产品,他们会在自己的网站上提供Windows路径

https://code.visualstudio.com/docs/languages/typescript#_using-newer-typescript-versions

但他们没有。它们只提供Unix路径类型。 使用:- 在Windows上:&#34; typescript.tsdk&#34;:&#34; C:/ Users / YourNameHere / AppData / Roaming / npm / node_modules / typescript / lib /&#34;

请注意,即使Windows对路径使用反向划分,也必须使用向前笔划!

其他一些答案错过了必要的最后一次中风。

答案 12 :(得分:0)

如果你真的不关心你使用哪个tsdk版本,你可以删除'typescript.tsdk'并使用Code中嵌入的那个。