# biome nursery/useVueBaseImport: fix changes program behavior

Internal evidence sheet generated by fixhunt. Not an issue text. A human re-verifies, checks the duplicates
below, and writes the upstream report in their own words following the project's AI policy.

- Tool: biome 2.5.15
- Rule: nursery/useVueBaseImport (tool labels the fix: safe, this fix reported as safe)
- Oracle: fix-changes-behavior
- Judge (Nemotron 3 Ultra, advisory): program-bug, severity low. Both the original and fixed programs fail with ERR_MODULE_NOT_FOUND because neither '@vue/runtime-core' nor 'vue' is installed in the execution environment. The behavioral difference (different missing-package name) stems entirely from the missing dependencies, not from the rewrite itself.
- Program: minimized from 7 to 4 lines

## Reproducer

```js
import { reactive } from "@vue/runtime-core";
try {
} catch (e) {
}
```

## Commands

```sh
node prog.js
bunx @biomejs/biome lint --only=nursery/useVueBaseImport --write prog.js
node prog.js
```

## Observed

```
stderr before: Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@vue/runtime-core' imported from /w/prog.js
stderr after: Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'vue' imported from /w/prog.js
```

## Diff applied by the fix

```diff
--- orig.js	2026-10-22 13:33:34.679142776 -0400
+++ fixed.js	2026-10-22 13:33:36.894180063 -0400
@@ -1,4 +1,4 @@
-import { reactive } from "@vue/runtime-core";
+import { reactive } from "vue";
 try {
 } catch (e) {
 }
```

## Why the rewrite is not equivalent (model draft, verify before use)

The import path was changed from @vue/runtime-core to vue, which may resolve to a different module or version; if neither package exists or both fail to resolve identically, the program still throws a module-not-found error, but the specific missing module name differs, altering the error message and thus the observable behavior of the program. This change in error output means the rewrite is not semantics-preserving, as the program’s external behavior—specifically, the error it produces—has changed.

## Upstream search

Queries: "useVueBaseImport fix", "nursery useVueBaseImport import specifier", "useVueBaseImport vue runtime core replacement", "biome lint rule import path correction"

- related: https://github.com/biomejs/biome/pull/7597
  PR #7597 fixes aliased paths in useImportExtensions, a different rule that also rewrites import specifiers but not the Vue-specific base import mapping used by useVueBaseImport
- related: https://github.com/biomejs/biome/pull/3274
  PR #3274 adds importMapping options to useImportExtensions for generic import path mapping, similar concept but different rule and configuration mechanism than useVueBaseImport

<details><summary>All hits</summary>

- [tavily] fix(linter): fix aliased paths in `useImportExtensions` by arendjr · Pull Request #7597 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/7597
- [tavily] fix(parse/html): fix disabled vue error message by dyc3 · Pull Request #9879 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9879
- [tavily] fix(js_analyze): mention which dependency the useExhaustiveDependencies fix adds to the list by Netail · Pull Request #9243 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9243
- [tavily] fix(css_parser): fix is at unicode range check by xin2017338 · Pull Request #3745 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/3745
- [tavily] fix(useConsistentTestIt): fix panic when applying code fix by dyc3 · Pull Request #9942 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9942
- [tavily] feat(lint): add nursery rule `useImportsFirst` by terror · Pull Request #9272 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9272
- [tavily] feat(biome_js_analyze): `useImportExtensions` - add `importMapping` options by drdaemos · Pull Request #3274 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/3274
- [tavily] noUnresolvedImports: False positives for installed packages (zod, clsx types) in standard Next.js setup · Issue #6464 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/6464
- [tavily] feat(biome_css_analyzer): implement noInvalidPositionAtImportRule by t-shiratori · Pull Request #2717 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/2717
- [tavily] 🐛 fix of `lint/nursery/noUnusedImports` does not work correctly · Issue #688 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/688
- [tavily] feat(js_analyze): implement useQwikLoaderLocation by Netail · Pull Request #9809 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9809
- [tavily] 🐛 biome lint panics with "assertion failed: start.raw <= end.raw" on Vue SFC with multi-line named imports (useImportType rule) · Issue #9848 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/9848
- [tavily] fix(core): track of default specifiers by ematipico · Pull Request #9878 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/9878
- [tavily] fix(parse/html/vue): accept colon modifier in vue directives by dyc3 · Pull Request #8817 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/8817
- [tavily] 🐛 possible raise condition when using `biome lsp-proxy` and having a broken config and formatting a vue file · Issue #6220 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/6220
- [tavily] fix(linter): improve Vue defineProps handling in noVueReservedKeys by mdevils · Pull Request #8448 · biomejs/biome · GitHub — https://github.com/biomejs/biome/pull/8448
- [tavily] 🐛 vue formatter does not recognize vue magic · Issue #2771 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/2771
- [github, closed] 💅 noUnnecessaryConditions: false positive on useRef(...).current null-guards (regression in 2.5.6) — https://github.com/biomejs/biome/issues/11360
- [github, closed] 💅 Stack overflow on Turbopack-generated chunk with type-aware nursery rules (regression in 2.4.12) — https://github.com/biomejs/biome/issues/10492
- [github, closed] 📝 Formater reports file as to be formatted but formatter does nothing — https://github.com/biomejs/biome/issues/5087
- [tavily] 🐛 File scanner taking >20s · Issue #6478 · biomejs/biome — https://github.com/biomejs/biome/issues/6478
- [tavily] 📎 Implement `biome lint --summary` · Issue #57 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/57
- [tavily] ☂️ Tailwind class sorting lint rule · Issue #1274 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/1274
- [tavily] 💅 noDuplicateTestHooks: false positive on a local function named `before` called twice in a test · Issue #12231 · biomejs/biome · GitHub — https://github.com/biomejs/biome/issues/12231
- [tavily] 🐛 Biome doesn't format on save · Issue #238 · biomejs/biome-vscode · GitHub — https://github.com/biomejs/biome-vscode/issues/238

</details>
