Skip to content

Commit 9197e12

Browse files
authored
Merge branch 'main' into main
2 parents 40823e0 + bd7c148 commit 9197e12

File tree

8 files changed

+33
-16
lines changed

8 files changed

+33
-16
lines changed

docs/config/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export default defineConfig(async ({ command, mode }) => {
7878
return {
7979
// build specific config
8080
}
81-
}
81+
})
8282
```
8383

8484
## Shared Options

packages/playground/define/__tests__/define.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,10 @@ test('string', async () => {
1414
expect(await page.textContent('.process-as-property')).toBe(
1515
defines.__OBJ__.process.env.SOMEVAR
1616
)
17+
expect(await page.textContent('.spread-object')).toBe(
18+
JSON.stringify({ SOMEVAR: defines['process.env.SOMEVAR'] })
19+
)
20+
expect(await page.textContent('.spread-array')).toBe(
21+
JSON.stringify([...defines.__STRING__])
22+
)
1723
})

packages/playground/define/index.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ <h1>Define</h1>
77
<p>Object <span class="pre object"></span></p>
88
<p>Env Var <code class="env-var"></code></p>
99
<p>process as property: <code class="process-as-property"></code></p>
10+
<p>spread object: <code class="spread-object"></code></p>
11+
<p>spread array: <code class="spread-array"></code></p>
1012

1113
<script type="module">
1214
text('.exp', __EXP__)
@@ -16,6 +18,13 @@ <h1>Define</h1>
1618
text('.object', JSON.stringify(__OBJ__, null, 2))
1719
text('.env-var', process.env.SOMEVAR)
1820
text('.process-as-property', __OBJ__.process.env.SOMEVAR)
21+
text(
22+
'.spread-object',
23+
JSON.stringify({
24+
...(process.env.SOMEVAR ? { SOMEVAR: `"${process.env.SOMEVAR}"` } : {})
25+
})
26+
)
27+
text('.spread-array', JSON.stringify([...`"${__STRING__}"`]))
1928

2029
function text(el, text) {
2130
document.querySelector(el).textContent = text

packages/plugin-vue/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"debug": "^4.3.2",
3939
"hash-sum": "^2.0.0",
4040
"rollup": "^2.38.5",
41-
"slash": "^3.0.0",
41+
"slash": "^4.0.0",
4242
"source-map": "^0.6.1"
4343
}
4444
}

packages/vite/src/node/cli.ts

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ interface GlobalCLIOptions {
3030
/**
3131
* removing global flags before passing as command specific sub-configs
3232
*/
33-
function cleanOptions(options: GlobalCLIOptions) {
33+
function cleanOptions<Options extends GlobalCLIOptions>(
34+
options: Options
35+
): Omit<Options, keyof GlobalCLIOptions> {
3436
const ret = { ...options }
3537
delete ret['--']
3638
delete ret.debug
@@ -86,7 +88,7 @@ cli
8688
configFile: options.config,
8789
logLevel: options.logLevel,
8890
clearScreen: options.clearScreen,
89-
server: cleanOptions(options) as ServerOptions
91+
server: cleanOptions(options)
9092
})
9193
await server.listen()
9294
} catch (e) {
@@ -133,7 +135,7 @@ cli
133135
.option('-w, --watch', `[boolean] rebuilds when modules have changed on disk`)
134136
.action(async (root: string, options: BuildOptions & GlobalCLIOptions) => {
135137
const { build } = await import('./build')
136-
const buildOptions = cleanOptions(options) as BuildOptions
138+
const buildOptions: BuildOptions = cleanOptions(options)
137139

138140
try {
139141
await build({
@@ -195,7 +197,7 @@ cli
195197
async (
196198
root: string,
197199
options: {
198-
host?: string
200+
host?: string | boolean
199201
port?: number
200202
https?: boolean
201203
open?: boolean | string
@@ -218,13 +220,7 @@ cli
218220
'serve',
219221
'development'
220222
)
221-
await preview(
222-
config,
223-
cleanOptions(options) as {
224-
host?: string
225-
port?: number
226-
}
227-
)
223+
await preview(config, cleanOptions(options))
228224
} catch (e) {
229225
createLogger(options.logLevel).error(
230226
chalk.red(`error when starting preview server:\n${e.stack}`)

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ export function definePlugin(config: ResolvedConfig): Plugin {
4646
}
4747

4848
const pattern = new RegExp(
49-
'(?<!\\.)\\b(' +
49+
// Do not allow preceding '.', but do allow preceding '...' for spread operations
50+
'(?<!(?<!\\.\\.)\\.)\\b(' +
5051
Object.keys(replacements)
5152
.map((str) => {
5253
return str.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&')

packages/vite/src/node/preview.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import sirv from 'sirv'
33
import chalk from 'chalk'
44
import connect from 'connect'
55
import compression from 'compression'
6-
import { ResolvedConfig } from '.'
6+
import { ResolvedConfig, ServerOptions } from '.'
77
import { Connect } from 'types/connect'
88
import {
99
resolveHttpsConfig,
@@ -18,7 +18,7 @@ import { resolveHostname } from './utils'
1818

1919
export async function preview(
2020
config: ResolvedConfig,
21-
serverOptions: { host?: string; port?: number }
21+
serverOptions: Pick<ServerOptions, 'port' | 'host'>
2222
): Promise<void> {
2323
const app = connect() as Connect.Server
2424
const httpServer = await resolveHttpServer(

yarn.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6913,6 +6913,11 @@ slash@^3.0.0:
69136913
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
69146914
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
69156915

6916+
slash@^4.0.0:
6917+
version "4.0.0"
6918+
resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
6919+
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
6920+
69166921
slice-ansi@^3.0.0:
69176922
version "3.0.0"
69186923
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"

0 commit comments

Comments
 (0)