Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Version ScanNew to Visual Studio Code? Get it now.
Version Scan

Version Scan

xhay

|
1 install
| (0) | Free
Scan dependency version consistency between package.json and node_modules.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Version Scan

A VSCode extension that detects dependency version issues in real time. Supports npm/pnpm/yarn, Rust (Cargo), and Git Submodule projects — notifying you the moment a problem is found and offering one-click fixes.


Features

npm / pnpm / yarn

  • Checks dependencies, devDependencies, optionalDependencies, and peerDependencies declared in package.json
  • Compares against versions installed in node_modules, detecting missing or out-of-range packages
  • Automatically re-runs checks after npm install / pnpm install / yarn install
  • Quick Fix:
    • Install dependencies — auto-detects npm / pnpm / yarn and runs the install command in a terminal
    • Update declared range — rewrites the version range in package.json to match the currently installed version (^x.y.z)

Rust (Cargo)

  • Checks [dependencies], [dev-dependencies], and [build-dependencies] declared in Cargo.toml
  • Compares against versions locked in Cargo.lock, detecting unlocked or out-of-range packages
  • Quick Fix: runs cargo update <package> in a terminal

Git Submodule

  • Parses .gitmodules and inspects all declared submodules
  • Compares the parent repository's locked commit against the commit actually checked out in the submodule directory
  • Detects uninitialized submodules or commit mismatches
  • Quick Fix:
    • Uninitialized: runs git submodule update --init
    • Commit mismatch: runs git submodule update

Notifications & Diagnostics

  • Problems panel — all issues are reported as diagnostics with clickable links to the relevant line
  • Inline highlights — version mismatches are marked with a yellow background; missing dependencies with a red background
  • Popup notifications — automatically triggered when:
    • A workspace is opened for the first time (startup check)
    • A dependency file changes (package.json / Cargo.toml / Cargo.lock / .gitmodules)
    • Dependencies are installed (node_modules update triggers a re-check)
  • Each notification offers three quick actions: View Problems / Open File / Run Install

Commands

Command Description
Version Scan: Run Dependency Check Manually trigger all checks for the current workspace
Version Scan: Install Dependencies Run the install command in a terminal
Version Scan: Update Declared Range To Installed Rewrite the npm version range to match the installed version

Configuration

Setting Type Default Description
versionScan.notifyOnStartup boolean true Show a popup notification when a workspace is first opened
versionScan.notifyOnPackageChange boolean true Show a popup notification when a dependency file changes
versionScan.notifyLevel string all Notification level: all / warn (mismatches only) / error (errors only)
versionScan.notifyCooldownSeconds number 180 Minimum seconds between duplicate notifications for the same issue
versionScan.ignoredDependencies array [] Dependency names to skip during checks (applies to all checkers)
versionScan.maxDepth number 5 Maximum directory depth to scan for package.json files (relative to workspace root)
versionScan.excludePatterns array ["dist","build","out","public"] Directory names or glob patterns to exclude from scanning (applies to all checkers)

Development

npm install
npm run compile

Press F5 to launch an Extension Development Host for debugging.

Adding a New Language Checker

Create a new directory under src/checkers/, implement the LanguageChecker interface, then register it in src/extension.ts:

registerChecker(new YourChecker());

The interface requires the following members:

Member Description
canHandle(folder) Return true if this checker applies to the given workspace
check(folder) Run the check and return a CheckResult
watchPatterns File globs to watch and their debounce delay (ms)
isSourceFile(filename) Return true if the file should trigger decoration refresh
buildRangeResolver(text, document) Return a function that maps a dependency to its source range
getCodeActions(document, diagnostic, folder) (Optional) Return Quick Fix code actions
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft