Light Nav
A lightweight VS Code / Cursor extension that provides go-to-definition for JavaScript and TypeScript without starting the TypeScript language server.
Built for developers on low-memory machines who want Cmd+click / F12 navigation without typescriptteam.native-preview or a heavy tsserver process.
What it does
| Action |
How |
| Cmd+click / F12 on an import path |
Resolves ./relative, ../relative, and tsconfig paths aliases to a file on disk |
| Cmd+click / F12 on a symbol |
Finds function, const, class, interface, type, and export definitions in the current file, then searches the workspace via the editor's built-in file search (no tsserver) |
Cmd+click on a React component (<TableView or TableView) |
Follows the matching import to the component file (e.g. ./components/TableView → TableView/index.tsx) |
What it does not do (yet)
- Type-aware navigation (generics, inferred types, interface implementation)
- Go-to-type-definition
- Re-export chains (
export { x } from './y')
node_modules package sources
For those, run tsc --noEmit or enable the TypeScript server only when you need it.
Install locally (development)
cd vscode-light-nav
npm install
npm run compile
In Cursor/VS Code: Run Extension from the Debug panel (opens a new window with the extension loaded), or:
npm run package # creates light-nav-0.1.0.vsix
Then: Extensions → … → Install from VSIX.
Recommended Cursor settings (low memory)
Disable the native TypeScript preview and reduce tsserver work while using Light Nav:
{
"typescript.experimental.useTsgo": false,
"js/ts.experimental.useTsgo": false,
"typescript.validate.enable": false,
"javascript.validate.enable": false,
"lightNav.enabled": true
}
Light Nav registers as a definition provider alongside the built-in TypeScript extension. With validation off, tsserver stays much quieter; Cmd+click still works via Light Nav.
Configuration
| Setting |
Default |
Description |
lightNav.enabled |
true |
Toggle the definition provider |
lightNav.preferWorkspaceSearch |
false |
Search whole workspace before current file |
lightNav.exclude |
node_modules, dist, … |
Globs excluded from workspace search |
Publish for your team
- Create a publisher at marketplace.visualstudio.com
- Update
publisher in package.json
npx vsce login <publisher> then npm run package and npx vsce publish
Or share the .vsix file internally.
- Install the VSIX
Option B — Command Palette
Cmd+Shift+P
Run Extensions: Install from VSIX…
Select the same .vsix file.
License
MIT