vue: Install a global version of TypeScript if not present in the project (#14747)

This PR updates the Vue extension with support for installing and using
its own copy of TypeScript if it can't find one in the project.

The way we resolve `typescript` is as follows:

- We check the project's `package.json` for `typescript` in either the
`devDependencies` or `dependencies`
- If found, we set the `typescript.tsdk` to
`node_modules/typescript/lib` to use the project's copy of TypeScript
- If not found, we install the latest version of `typescript` (if not
already downloaded) to the extension's `package.json` and use that
version for `typescript.tsdk`

This should resolve instances where Vue projects that do not have an
explicit `typescript` dependency—such as those using Vue with plain
JavaScript—fail to load the language server due to TypeScript not being
found.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers
2024-07-18 11:32:46 -04:00
committed by GitHub
parent 3a83fecea9
commit be1ff8aee9
3 changed files with 85 additions and 13 deletions
Generated
+1
View File
@@ -13946,6 +13946,7 @@ dependencies = [
name = "zed_vue"
version = "0.0.3"
dependencies = [
"serde",
"zed_extension_api 0.0.6",
]