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

我刚开始玩Visual Studio Code,当我创build一个名为index.html的新文件时,我显示了这个警告消息

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

有人可以请指导我要做什么来解决这个问题。

这是严重的还是我可以忽略的。 我GOOGLE了,但不能得到很多信息

谢谢

在这里输入图像说明

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

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

现在我不再收到这个错误,并且在屏幕的右下angular显示了我已经安装的Typescript的当前版本。

[更新] 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上,path是: "typescript.tsdk": "C:/Users/{user_name}/AppData/Roaming/npm/node_modules/typescript/lib/"

您必须更新您的Typescript安装,然后重新启动代码:

 npm install -g typescript 

要么

 npm install -g typescript@1.8.10 

消息不应该再出现,如果它工作。

您必须更改Visual代码使用的TypeScript版本以匹配您安装的版本:

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

以上摘自链接:

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

你可以使用npm list typescriptfind安装位置,tsserver.js通常在lib文件夹下。

例如:

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

这个错误是由于我在系统pathvariables中引用了一个较老的TypeScript的安装而产生的:

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

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

但是,我的TypeScript文件然后无法执行生成操作无法findtsc.exe文件。

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

还有另一种方法可以通过使用node.js来在Windows环境下传输文件:

  • 安装node.js. 安装包可以在这里find。
  • 使用npm来安装TypeScript:

    npm install -g typescript

    这会将TypeScript文件添加到您的configuration文件AppData文件夹中:

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

  • configuration您的Visual Studio代码用户 settings.json文件引用此文件夹:

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

    %USERPROFILE%\AppData\Roaming\npm

上述解决scheme都不适合我 – 首先这是我想要更新到最新版本的全球tsc。

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

  • c:\ Program Files \ nodejs – 其中npm.exe和node.exe是
  • %USERPROFILE%\ AppData \ Roaming \ npm – 全局软件包的位置

你可以做的是玩弄环境\用户variables,所以tsc命令将首先从%USERPROFILE%parsing,而不是Program Files

快速和肮脏的方式只是从程序文件path删除tsc.cmdtscserver.cmd

安装打字稿v2.0.3是不够的…但是,然后更新版本依赖package.json为我工作。

Npm命令:

 npm install -g typescript@2.0.3 

package.json的更新行:

 "typescript": "^2.0.3" 

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

然后必须使用typescript.tsdk设置来告诉setting.json文件( File -> Preferences -> Workspace Settings )的VS代码。 将tsserver.js设置为包含安装的TypeScript模块的tsserver.js文件的lib文件夹的path。

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

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

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

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

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

例如,如果我简单地调用npm i -g typescript ~/.nvm/versions/node/v6.9.1/bin/npmnpmparsing为~/.nvm/versions/node/v6.9.1/bin/npm 。 我必须明确地调用/usr/local/bin/npm i -g typescript typescript来解决问题,因为VSCode默认在/usr/local/bin/node查找节点。

如果你应该select忽略这个事实,那么你可以通过Preferences来将它添加到你的settings.json文件中:

 "typescript.check.tscVersion": false 

根据VS Code 1.10.2中的评论:

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

你会认为这是一个微软产品,他们会给他们的网站上的Windowspath

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

但他们没有。 它们只提供Unixpathtypes。 使用: – 在Windows上:“typescript.tsdk”:“C:/ Users / YourNameHere / AppData / Roaming / npm / node_modules / typescript / lib /”

请注意,即使Windows使用反向path,也必须使用向前笔划!

其他一些答案错过了最后一次前进的冲程,这是必要的。