Skip to content

Commit 6d4ee18

Browse files
authored
feat(define): prevent assignment (vitejs#5515)
1 parent ac3f434 commit 6d4ee18

File tree

3 files changed

+4
-1
lines changed

3 files changed

+4
-1
lines changed

packages/playground/define/index.html

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ <h1>Define</h1>
1111
<p>spread array: <code class="spread-array"></code></p>
1212

1313
<script type="module">
14+
const __VAR_NAME__ = true // ensure define doesn't replace var name
1415
text('.exp', __EXP__)
1516
text('.string', __STRING__)
1617
text('.number', __NUMBER__)

packages/playground/define/vite.config.js

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ module.exports = {
1515
}
1616
}
1717
},
18+
__VAR_NAME__: false,
1819
'process.env.SOMEVAR': '"SOMEVAR"'
1920
}
2021
}

packages/vite/src/node/plugins/define.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ export function definePlugin(config: ResolvedConfig): Plugin {
6767
return str.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&')
6868
})
6969
.join('|') +
70-
')\\b',
70+
// prevent trailing assignments
71+
')\\b(?!\\s*?=[^=])',
7172
'g'
7273
)
7374

0 commit comments

Comments
 (0)