typescript - Hur konverterar man en Uri till en FilePath i en VS Code Language Server?


I ett VS Code-tillägg kan du konvertera en URI till en filväg på detta sätt:

import {Uri} from 'vscode';
let uri = 'file:///c%3A/WINDOWS/file.txt';  
let path:string = Uri.parse(uri).fsPath;  

Men i en språktjänst fungerar detta inte, eftersom importering av vscode misslyckas. Anledningen till detta är att vscode är "inte en riktig node_module"
vscode problem #6586 efter att ha körts framgångsrikt,

node ./node_modules/vscode/bin/install

när språkservern startas hittar den fortfarande inte modulen:

Error: Cannot find module 'vscode'

Vad är det bästa sättet att omvandla en Uri till en filväg på ett plattformsoberoende sätt?

Svar #1

Det verkar som att Microsoft har flyttat detta paket, så du behöver göra följande:

Lägg först till som ett beroende:

npm install --save vscode-uri

Och sedan i ditt program:

import Uri from 'vscode-uri'

Relaterade artiklar