diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md
index 0ac4a28c2d6009..eaac863360feb9 100644
--- a/packages/vite/CHANGELOG.md
+++ b/packages/vite/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 3.1.2 (2022-09-17)
+
+* fix: use isOptimizable to ensure version query (#10141) ([23a51c6](https://github.com/vitejs/vite/commit/23a51c6)), closes [#10141](https://github.com/vitejs/vite/issues/10141)
+
+
+
## 3.1.1 (2022-09-15)
* fix: ensure version query for relative node_modules imports (#10016) ([1b822d0](https://github.com/vitejs/vite/commit/1b822d0)), closes [#10016](https://github.com/vitejs/vite/issues/10016)
diff --git a/packages/vite/package.json b/packages/vite/package.json
index a19b2fdc3751f5..0a4ea3aceb5245 100644
--- a/packages/vite/package.json
+++ b/packages/vite/package.json
@@ -1,6 +1,6 @@
{
"name": "vite",
- "version": "3.1.1",
+ "version": "3.1.2",
"type": "module",
"license": "MIT",
"author": "Evan You",
diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts
index 97b032b2833e11..2f2ccb2fb9af96 100644
--- a/packages/vite/src/node/plugins/resolve.ts
+++ b/packages/vite/src/node/plugins/resolve.ts
@@ -29,6 +29,7 @@ import {
isFileReadable,
isNonDriveRelativeAbsolutePath,
isObject,
+ isOptimizable,
isPossibleTsOutput,
isTsRequest,
isWindows,
@@ -181,7 +182,7 @@ export function resolvePlugin(resolveOptions: InternalResolveOptions): Plugin {
if (isNodeModule && !resolved.match(DEP_VERSION_RE)) {
const versionHash = depsOptimizer.metadata.browserHash
- if (versionHash && OPTIMIZABLE_ENTRY_RE.test(resolved)) {
+ if (versionHash && isOptimizable(resolved, depsOptimizer.options)) {
resolved = injectQuery(resolved, `v=${versionHash}`)
}
}
@@ -750,7 +751,9 @@ export function tryNodeResolve(
}
// if we reach here, it's a valid dep import that hasn't been optimized.
- const isJsType = OPTIMIZABLE_ENTRY_RE.test(resolved)
+ const isJsType = depsOptimizer
+ ? isOptimizable(resolved, depsOptimizer.options)
+ : OPTIMIZABLE_ENTRY_RE.test(resolved)
let exclude = depsOptimizer?.options.exclude
let include = depsOptimizer?.options.exclude