vercel / turbo

Incremental bundler and build system optimized for JavaScript and TypeScript, written in Rust – including Turbopack and Turborepo.
https://turbo.build
MIT License
25.64k stars 1.74k forks source link

[LSP] Extension fails to resolve turbo.path in VSC #8583

Open motss opened 3 weeks ago

motss commented 3 weeks ago

Verify canary release

Link to code that reproduces this issue

https://github.com/motss/vercel-turbo-8583

What package manager are you using / does the bug impact?

pnpm

What operating system are you using?

Mac

Which canary version will you have in your reproduction?

turbo 2.0.4

Describe the Bug

turbo-not-found

VSC extension always fails to read and the resolve the turbo.path defined in local's .vscode/settings.json file.

None of the following paths work:

"turbo.path": "./node_modules/.bin/turbo"
"turbo.path": "node_modules/.bin/turbo"

This is the error being showing in the Output tab:

starting the turbo extension
manually specified turbo does not exist at path `./node_modules/.bin/turbo`, attempting to locate it
attempting to find global turbo
prompting global turbo
attempting to find local turbo using npm
attempting to find local turbo using yarn
attempting to find local turbo using pnpm
found local turbo at /Users/rongsen/motss/webmod/node_modules/.bin/turbo
using turbo at path /Users/rongsen/motss/webmod/node_modules/.bin/turbo

However, the current workaround can be either:

  1. Using the absolute path works just fine, or
    "turbo.path": "/Users/johndoe/test-turbo/node_modules/.bin/turbo",
  2. Use "turbo.useLocalTurbo": true instead as turbo LSP is able to search for local turbo but this can be time-consuming as the extension takes a few tries/ guesses in order to reach to the correct location.

Expected Behavior

VSC extension should read and resolve the turbo.path defined in local's .vscode/settings.json file.

This should be the expected log from the extension instead:

starting the turbo extension
using turbo at path /Users/johndoe/test-turborepo/node_modules/.bin/turbo

To Reproduce

  1. Create any project using turbo
  2. Create .vscode/settings.json
  3. Add "turbo.path": "./node_modules/.bin/turbo"
  4. Reload VSC
  5. Go to OUTPUT tab to see the output from a VSC extension
  6. Done

Additional context

No response

TylerNRobertson commented 3 weeks ago

+1 on this, Ive never been able to get this extension to work