Skip to content

Commit 1e7d39d

Browse files
committed
feat+refactor(app-vite): env handling; types
1 parent c726e37 commit 1e7d39d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1154
-1332
lines changed

app-vite/exports/bex/background.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,12 @@ function connectToDevServer(devServerPort, wsToken) {
126126
* Only run these in development mode and in a background service worker.
127127
* Currently only Chrome supports this.
128128
*/
129-
if (process.env.DEV === true && process.env.TARGET === 'chrome') {
130-
const devServerPort = process.env.__QUASAR_BEX_SERVER_PORT__
131-
const wsToken = process.env.__QUASAR_BEX_WS_TOKEN__
129+
if (
130+
import.meta.env.QUASAR_DEV === true &&
131+
import.meta.env.QUASAR_TARGET === 'chrome'
132+
) {
133+
const devServerPort = import.meta.env.QUASAR_BEX_SERVER_PORT
134+
const wsToken = import.meta.env.QUASAR_BEX_WS_TOKEN
132135

133136
interceptRequests(devServerPort)
134137
connectToDevServer(devServerPort, wsToken)

app-vite/exports/bex/content.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@ import { BexBridge } from './private/bex-bridge.js'
55
* Only Chrome allows the background counterpart initialization
66
* to take place in a service worker.
77
*/
8-
if (process.env.DEV === true && process.env.TARGET === 'chrome') {
8+
if (
9+
import.meta.env.QUASAR_DEV === true &&
10+
import.meta.env.QUASAR_TARGET === 'chrome'
11+
) {
912
let scriptIsReloading = false
1013

11-
const scriptName = process.env.__QUASAR_BEX_SCRIPT_NAME__
14+
const scriptName = import.meta.env.QUASAR_BEX_SCRIPT_NAME
1215
const portName = `quasar@hmr/content-script/${scriptName}`
1316
const banner = `[QBex|HMR] [${scriptName}]`
1417

@@ -64,7 +67,7 @@ export function createBridge({ debug } = {}) {
6467
scriptHasBridge = true
6568
return new BexBridge({
6669
type: 'content',
67-
name: process.env.__QUASAR_BEX_SCRIPT_NAME__,
70+
name: import.meta.env.QUASAR_BEX_SCRIPT_NAME,
6871
debug
6972
})
7073
}

app-vite/exports/bex/private/bex-bridge.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const portNameRE = /^background$|^app$|^content@/
2-
const { runtime } = process.env.TARGET === 'firefox' ? browser : chrome
2+
const { runtime } =
3+
import.meta.env.QUASAR_TARGET === 'firefox' ? browser : chrome
34

45
/**
56
* @param {number} max

app-vite/exports/wrappers/wrappers.cjs

Lines changed: 0 additions & 21 deletions
This file was deleted.

app-vite/lib/app-devserver.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ export class AppDevserver extends AppTool {
5454
])
5555

5656
this.registerDiff('rolldown', quasarConf => [
57-
quasarConf.build.env,
58-
quasarConf.build.rawDefine,
59-
quasarConf.metaConf.fileEnv,
57+
quasarConf.build.define,
58+
quasarConf.metaConf.fileClientEnv,
59+
quasarConf.metaConf.fileServerEnv,
6060
quasarConf.build.alias,
6161
quasarConf.build.minify,
6262
quasarConf.build.target

app-vite/lib/config-tools.js

Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,17 @@ import { merge } from 'webpack-merge'
55

66
import { cliPkg } from './utils/cli-runtime.js'
77
import { getPackage } from './utils/get-package.js'
8-
import { getBuildSystemDefine } from './utils/env.js'
98
import { log, warn, tip } from './utils/logger.js'
9+
import {
10+
BASELINE_WIDELY_AVAILABLE_TARGET_STRING,
11+
BASELINE_WIDELY_AVAILABLE
12+
} from './utils/build-targets.js'
1013

1114
import { quasarViteIndexHtmlTransformPlugin } from './plugins/vite.index-html-transform.js'
1215
import { quasarViteStripFilenameHashesPlugin } from './plugins/vite.strip-filename-hashes.js'
1316

1417
const cliPkgDependencies = Object.keys(cliPkg.dependencies || {})
1518

16-
/* Should match Vite's own hard-coded values */
17-
export const BASELINE_WIDELY_AVAILABLE_TARGET_STRING =
18-
'baseline-widely-available'
19-
const BASELINE_WIDELY_AVAILABLE = [
20-
'chrome111',
21-
'edge111',
22-
'firefox114',
23-
'safari16.4',
24-
'ios16.4'
25-
]
26-
2719
async function parseVitePlugins(entries, appDir, compileId) {
2820
const acc = []
2921
let showTip = false
@@ -149,11 +141,12 @@ export async function createViteConfig(quasarConf, { compileId }) {
149141
logLevel: 'warn',
150142
mode: ctx.dev === true ? 'development' : 'production',
151143
cacheDir,
152-
define: getBuildSystemDefine({
153-
buildEnv: build.env,
154-
buildRawDefine: build.rawDefine,
155-
fileEnv: metaConf.fileEnv
156-
}),
144+
define: {
145+
...(compileId !== 'vite-ssr-server'
146+
? metaConf.fileClientEnv
147+
: metaConf.fileServerEnv),
148+
...build.define
149+
},
157150

158151
resolve: {
159152
alias: {
@@ -307,11 +300,10 @@ export function createNodeRolldownConfig(quasarConf, { format }) {
307300
transform: {
308301
target: quasarConf.build.target.node,
309302
minify: quasarConf.build.minify !== false,
310-
define: getBuildSystemDefine({
311-
buildEnv: quasarConf.build.env,
312-
buildRawDefine: quasarConf.build.rawDefine,
313-
fileEnv: quasarConf.metaConf.fileEnv
314-
})
303+
define: {
304+
...quasarConf.metaConf.fileServerEnv,
305+
...quasarConf.build.define
306+
}
315307
},
316308

317309
// we use a fresh list since this can be tampered with by the user:
@@ -325,8 +317,8 @@ export function createBrowserRolldownConfig(quasarConf) {
325317
const { browser } = quasarConf.build.target
326318
const target =
327319
browser === BASELINE_WIDELY_AVAILABLE_TARGET_STRING
328-
? BASELINE_WIDELY_AVAILABLE
329-
: browser
320+
? [...BASELINE_WIDELY_AVAILABLE]
321+
: JSON.parse(JSON.stringify(browser))
330322

331323
return {
332324
platform: 'browser',
@@ -346,11 +338,10 @@ export function createBrowserRolldownConfig(quasarConf) {
346338
transform: {
347339
target,
348340
minify: quasarConf.build.minify !== false,
349-
define: getBuildSystemDefine({
350-
buildEnv: quasarConf.build.env,
351-
buildRawDefine: quasarConf.build.rawDefine,
352-
fileEnv: quasarConf.metaConf.fileEnv
353-
})
341+
define: {
342+
...quasarConf.metaConf.fileClientEnv,
343+
...quasarConf.build.define
344+
}
354345
},
355346

356347
plugins: []

app-vite/lib/modes/bex/bex-config.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import {
99
extendRolldownConfig
1010
} from '../../config-tools.js'
1111

12-
import { getBuildSystemDefine } from '../../utils/env.js'
13-
1412
function generateDefaultEntry(quasarConf) {
1513
return {
1614
name: 'file', // or subdir/file (regardless of OS)
@@ -58,19 +56,20 @@ export const quasarBexConfig = {
5856

5957
bexScript(quasarConf, entry = generateDefaultEntry(quasarConf)) {
6058
const cfg = createBrowserRolldownConfig(quasarConf)
61-
const buildEnv = {
62-
__QUASAR_BEX_SCRIPT_NAME__: entry.name
59+
60+
cfg.transform.define = {
61+
...cfg.transform.define,
62+
'import.meta.env.QUASAR_BEX_SCRIPT_NAME': `"${entry.name}"`
6363
}
6464

6565
if (quasarConf.ctx.dev) {
6666
// Vite 6.0.9+ compat; we need the token!
67-
buildEnv.__QUASAR_BEX_WS_TOKEN__ = quasarConf.metaConf.bexWsToken
68-
buildEnv.__QUASAR_BEX_SERVER_PORT__ = quasarConf.devServer.port || 0
69-
}
70-
71-
cfg.transform.define = {
72-
...cfg.transform.define,
73-
...getBuildSystemDefine({ buildEnv })
67+
Object.assign(cfg.transform.define, {
68+
'import.meta.env.QUASAR_BEX_WS_TOKEN': `"${quasarConf.metaConf.bexWsToken}"`,
69+
'import.meta.env.QUASAR_BEX_SERVER_PORT': String(
70+
quasarConf.devServer.port || 0
71+
)
72+
})
7473
}
7574

7675
cfg.input = entry.from

app-vite/lib/modes/electron/electron-config.js

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
extendRolldownConfig,
77
createNodeRolldownConfig
88
} from '../../config-tools.js'
9-
import { getBuildSystemDefine } from '../../utils/env.js'
109

1110
async function preloadScript(quasarConf, name) {
1211
/**
@@ -33,12 +32,8 @@ async function preloadScript(quasarConf, name) {
3332

3433
cfg.transform.define = {
3534
...cfg.transform.define,
36-
...getBuildSystemDefine({
37-
buildEnv: {
38-
QUASAR_PUBLIC_FOLDER:
39-
quasarConf.ctx.dev === true ? appPaths.publicDir : '.'
40-
}
41-
})
35+
'import.meta.env.QUASAR_PUBLIC_FOLDER':
36+
quasarConf.ctx.dev === true ? JSON.stringify(appPaths.publicDir) : '"."'
4237
}
4338

4439
return {
@@ -81,21 +76,21 @@ export const quasarElectronConfig = {
8176

8277
cfg.transform.define = {
8378
...cfg.transform.define,
84-
...getBuildSystemDefine({
85-
buildEnv:
86-
quasarConf.ctx.dev === true
87-
? {
88-
QUASAR_ELECTRON_PRELOAD_FOLDER:
89-
appPaths.resolve.entry('preload'),
90-
QUASAR_ELECTRON_PRELOAD_EXTENSION: '.cjs',
91-
QUASAR_PUBLIC_FOLDER: appPaths.publicDir
92-
}
93-
: {
94-
QUASAR_ELECTRON_PRELOAD_FOLDER: 'preload',
95-
QUASAR_ELECTRON_PRELOAD_EXTENSION: '.cjs',
96-
QUASAR_PUBLIC_FOLDER: '.'
97-
}
98-
})
79+
...(quasarConf.ctx.dev === true
80+
? {
81+
'import.meta.env.QUASAR_ELECTRON_PRELOAD_FOLDER': JSON.stringify(
82+
appPaths.resolve.entry('preload')
83+
),
84+
'import.meta.env.QUASAR_ELECTRON_PRELOAD_EXTENSION': '".cjs"',
85+
'import.meta.env.QUASAR_PUBLIC_FOLDER': JSON.stringify(
86+
appPaths.publicDir
87+
)
88+
}
89+
: {
90+
'import.meta.env.QUASAR_ELECTRON_PRELOAD_FOLDER': '"preload"',
91+
'import.meta.env.QUASAR_ELECTRON_PRELOAD_EXTENSION': '".cjs"',
92+
'import.meta.env.QUASAR_PUBLIC_FOLDER': '"."'
93+
})
9994
}
10095

10196
return extendRolldownConfig(

app-vite/lib/modes/pwa/pwa-config.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,14 @@ export const quasarPwaConfig = {
150150

151151
const cfg = createBrowserRolldownConfig(quasarConf)
152152

153-
cfg.transform.define['process.env.PWA_FALLBACK_HTML'] = JSON.stringify(
154-
ctx.mode.ssr === true && ctx.prod === true
155-
? quasarConf.ssr.pwaOfflineHtmlFilename
156-
: 'index.html'
157-
)
158-
159-
cfg.transform.define['process.env.PWA_SERVICE_WORKER_REGEX'] =
153+
cfg.transform.define['import.meta.env.QUASAR_PWA_FALLBACK_HTML'] =
154+
JSON.stringify(
155+
ctx.mode.ssr === true && ctx.prod === true
156+
? quasarConf.ssr.pwaOfflineHtmlFilename
157+
: 'index.html'
158+
)
159+
160+
cfg.transform.define['import.meta.env.QUASAR_PWA_SERVICE_WORKER_REGEX'] =
160161
JSON.stringify(`${escapeRegexString(quasarConf.pwa.swFilename)}$`)
161162

162163
cfg.input = quasarConf.sourceFiles.pwaServiceWorker

0 commit comments

Comments
 (0)