Skip to content

Commit 46d3d65

Browse files
authoredMar 17, 2025··
fix: properly interpret boolean values in define (#545)
1 parent 4abe3be commit 46d3d65

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed
 

‎packages/plugin-vue-jsx/src/index.ts

+14-3
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,28 @@ function vueJsxPlugin(options: Options = {}): Plugin {
5353
name: 'vite:vue-jsx',
5454

5555
config(config) {
56+
const parseDefine = (v: unknown) => {
57+
try {
58+
return typeof v === 'string' ? JSON.parse(v) : v
59+
} catch (err) {
60+
return v
61+
}
62+
}
5663
return {
5764
// only apply esbuild to ts files
5865
// since we are handling jsx and tsx now
5966
esbuild: {
6067
include: /\.ts$/,
6168
},
6269
define: {
63-
__VUE_OPTIONS_API__: config.define?.__VUE_OPTIONS_API__ ?? true,
64-
__VUE_PROD_DEVTOOLS__: config.define?.__VUE_PROD_DEVTOOLS__ ?? false,
70+
__VUE_OPTIONS_API__:
71+
parseDefine(config.define?.__VUE_OPTIONS_API__) ?? true,
72+
__VUE_PROD_DEVTOOLS__:
73+
parseDefine(config.define?.__VUE_PROD_DEVTOOLS__) ?? false,
6574
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__:
66-
config.define?.__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ ?? false,
75+
parseDefine(
76+
config.define?.__VUE_PROD_HYDRATION_MISMATCH_DETAILS__,
77+
) ?? false,
6778
},
6879
}
6980
},

‎packages/plugin-vue/src/index.ts

+12-3
Original file line numberDiff line numberDiff line change
@@ -245,22 +245,31 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin<Api> {
245245
},
246246

247247
config(config) {
248+
const parseDefine = (v: unknown) => {
249+
try {
250+
return typeof v === 'string' ? JSON.parse(v) : v
251+
} catch (err) {
252+
return v
253+
}
254+
}
248255
return {
249256
resolve: {
250257
dedupe: config.build?.ssr ? [] : ['vue'],
251258
},
252259
define: {
253260
__VUE_OPTIONS_API__:
254261
options.value.features?.optionsAPI ??
255-
config.define?.__VUE_OPTIONS_API__ ??
262+
parseDefine(config.define?.__VUE_OPTIONS_API__) ??
256263
true,
257264
__VUE_PROD_DEVTOOLS__:
258265
(options.value.features?.prodDevtools ||
259-
config.define?.__VUE_PROD_DEVTOOLS__) ??
266+
parseDefine(config.define?.__VUE_PROD_DEVTOOLS__)) ??
260267
false,
261268
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__:
262269
(options.value.features?.prodHydrationMismatchDetails ||
263-
config.define?.__VUE_PROD_HYDRATION_MISMATCH_DETAILS__) ??
270+
parseDefine(
271+
config.define?.__VUE_PROD_HYDRATION_MISMATCH_DETAILS__,
272+
)) ??
264273
false,
265274
},
266275
ssr: {

0 commit comments

Comments
 (0)
Please sign in to comment.