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.cmd和tscserver.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/npm
, npm
parsing为~/.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,也必须使用向前笔划!
其他一些答案错过了最后一次前进的冲程,这是必要的。