2016-09-15 214 views
42

我剛開始使用Visual Studio代碼玩,當我創建了一個名爲index.html的新文件,我出這個警告信息的版本不匹配

的版本不匹配全球安裝的tsc編譯器(1.0.3.0)和VS Code的語言服務(1.8.10)有

有人可以請指導我,我必須做些什麼來解決這個問題。

這是嚴重的還是我可以忽略的。我用Google搜索,但未能獲得太多信息

感謝

enter image description here

回答

10

您需要更新您的打字稿安裝後重新啓動代碼:

npm install -g typescript 

npm install -g [email protected] 

的消息不應該再出現,如果它工作。

+0

我沒有工作。我不得不通過點擊不再檢查來壓制消息。 – VivekDev

10

你必須改變打字稿的版本的Visual代碼使用,以配合您所安裝的版本:

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" 
} 
17

[UPDATE] VS Code 1.6 now ships with TypeScript 2.0.3

我剛剛安裝了最新的Typescript,當前爲v.2.0.3,並在macOS Sierra上安裝了VS代碼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/"

+4

'typescript.tsdk「:」C:/ Users/{user_name}/AppData/Roaming/npm/node_modules/typescript/lib /「'在windows上。但這是我需要的。 – ptpaterson

+1

謝謝你的@ptpaterson。我將這個信息添加到答案中。 – rafaelbiten

+1

@rafaelbiten你的Windows路徑中有兩個隱藏的字符。 '/ types ^^ cript/lib'。請刪除它們 –

28

我說這個我settings.json文件,通過preferences > Workspace Settings訪問:

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

現在我不再收到這個錯誤,並且在屏幕的右下角顯示了我已安裝的Typescript的當前版本。

+1

這是Windows上的正確答案(不需要長顯式路徑) –

+1

文件>首選項>工作區設置(感謝https://code.visualstudio.com/Docs/customization/userandworkspace) – Reid

+2

在Windows上,當我使用''typescript.tsdk「:」node_modules/typescript/lib「',我得到一個警告'路徑c:\ temp \ typescript \ code \ node_modules \ typescript \ lib沒有指向有效的tsserver安裝。回落到捆綁的TypeScript版本。「我不得不使用完整的路徑。 '「typescript.tsdk」:「C:\\ Users \\ wekel \\ AppData \\ Roaming \\ npm \\ node_modules \\ typescript \\ lib」'我正在使用VS Code 1.9.1。 – Wally

1

全局安裝TypeScript以跨工作區共享安裝。在這種情況下,您使用npm install -g [email protected]進行安裝。

然後您必須使用typescript.tsdk設置告訴VS代碼setting.json文件(File -> Preferences -> Workspace Settings)安裝位置。將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"

1

安裝VSCode 1.6.0固定的打字稿版本不匹配,我警告信息。

3

安裝v2.0.3 typescript是不夠的......但是,然後更新package.json的版本依賴關係爲我工作。

NPM命令:

"typescript": "^2.0.3" 
8

,因爲我必須在我的系統路徑變量的舊安裝打字稿的參考正在生成此錯誤:上的package.json

npm install -g [email protected] 

更新行:

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

當我刪除此條目時,Visual Studio代碼錯誤已解決。

但是,由於生成操作無法找到tsc.exe文件,因此我的TypeScript文件無法傳輸。

當安裝SDK(通過Visual Studio或通過手動安裝*.visx)時,會安裝tsc.exe文件並更新PATH環境變量以引用此文件所在的文件夾(請參見上文)。

還有另一種方法,通過使用Node.js的到transpile您在Windows環境下的文件:

  • 安裝node.js中安裝包可以在here找到。
  • 使用NPM安裝打字稿:

    npm install -g 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

1

我這個問題的經驗的原因(在VSCode 1.8在Mac OS X 10.12.2)是我一直在使用NVM,而我的代碼在NVM版本上運行時,VSCode正在查看節點的系統安裝。

仔細檢查您正在使用哪種npm安裝來全局安裝打字稿。如果有疑問(在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中查找節點。

0

如果您選擇在事後忽略,那麼你可以通過首選項添加到您的settings.json文件:

"typescript.check.tscVersion": false 

根據VS代碼1.10.2註釋:

檢查全局安裝的TypeScript編譯器(例如tsc)是否與使用的TypeScript語言服務的 不同。

+0

對不起隊友,因爲這個解決方案只是在最好的解決方案是實際使版本保持一致時纔會彈出通知。該通知是有原因的。爲了這個答案被表決,應該提出一個真正的解決方案,除了刪除通知之外。 – AlexRebula

4

上述解決方案都不適用於我 - 首先這是全球tsc我想更新到最新版本。

我做了一些調查後發現問題在於系統的PATH變量; tsc.cmd(連同tscserver.cmd)存在於這些位置:

  • C:\ Program Files文件\的NodeJS - 在npm.exe和節點位置。exe文件是
  • %USERPROFILE%\應用程序數據\漫遊\ NPM - 在全球封裝

你可以做的是兼顧環境\用戶變量所以TSC命令將從%得到解決USERPROFILE%首先而不是程序文件

快速&骯髒的方式將只是刪除tsc.cmdtscserver.cmdProgram Files文件路徑。

0

你會認爲這是微軟的產品,他們會給予他們的網站上

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

Windows的路徑,但他們沒有。它們只提供Unix路徑類型。 用途: - 在Windows中: 「typescript.tsdk」: 「C:/用戶/ YourNameHere/AppData的/漫遊/ NPM/node_modules /打字稿/ lib中/」

請注意,轉發招必須使用即使Windows使用對路徑的反擊!

其他一些答案錯過了最後一次前進的衝程,這是必要的。

+1

在窗口上,使用路徑的轉義反斜槓:''C:\\ Users \\ YourNameHere \\ AppData \\ ...' –

+0

對不起隊友,但是這樣做是因爲這看起來不是一個答案,而是一個評論。如果你的意思是它是一個答案,那麼它似乎與問題無關。也許你可以編輯它,以更清楚地瞭解路徑和路徑格式如何解決這個問題或將其刪除,並將其作爲評論所以我會把它投票:) – AlexRebula

+1

@AlexRebula我不允許對其他用戶的答案發表任何評論,我越投越多的可能性。 –

0

如果你真的不關心你使用的tsdk版本,你可以刪除'typescript.tsdk'並使用代碼中嵌入的那個。