Skip to content

Commit 794a8f2

Browse files
Copilotsapphi-red
andauthored
feat(ssr): add import.meta.main support for Node.js module runner (vitejs#20517)
Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: sapphi-red <[email protected]>
1 parent 5d3e3c2 commit 794a8f2

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

packages/vite/src/module-runner/createImportMeta.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ export async function createNodeImportMeta(
5454

5555
return {
5656
...defaultMeta,
57+
main: false,
5758
resolve(id: string, parent?: string) {
5859
const resolver = importMetaResolver ?? defaultMeta.resolve
5960
return resolver(id, parent ?? href)

playground/ssr/__tests__/ssr.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ test(`import.meta.resolve is supported`, async () => {
5252
expect(await page.textContent('.import-meta-resolve')).toBe(metaUrl)
5353
})
5454

55+
test(`import.meta.main is supported`, async () => {
56+
await page.goto(`${url}/import-meta`)
57+
58+
expect(await page.textContent('.import-meta-main')).toBe('false')
59+
})
60+
5561
test.runIf(isServe)('html proxy is encoded', async () => {
5662
await page.goto(
5763
`${url}?%22%3E%3C/script%3E%3Cscript%3Econsole.log(%27html%20proxy%20is%20not%20encoded%27)%3C/script%3E`,

playground/ssr/src/app.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,10 @@ async function renderForkedDeadlockDynamicImports(rootDir) {
6565
async function renderImportMeta(rootDir) {
6666
const metaUrl = import.meta.url
6767
const resolveResult = import.meta.resolve('./app.js')
68+
const metaMain = import.meta.main
6869
return (
6970
`<div class="import-meta-url">${escapeHtml(metaUrl)}</div>` +
70-
`<div class="import-meta-resolve">${escapeHtml(resolveResult)}</div>`
71+
`<div class="import-meta-resolve">${escapeHtml(resolveResult)}</div>` +
72+
`<div class="import-meta-main">${escapeHtml(String(metaMain))}</div>`
7173
)
7274
}

0 commit comments

Comments
 (0)