diff --git a/.changeset/tasty-mugs-approve.md b/.changeset/tasty-mugs-approve.md
new file mode 100644
index 000000000000..a30e9108be79
--- /dev/null
+++ b/.changeset/tasty-mugs-approve.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Upgrade Vite to 3.2
diff --git a/.changeset/wicked-pans-wait.md b/.changeset/wicked-pans-wait.md
new file mode 100644
index 000000000000..091e51c88004
--- /dev/null
+++ b/.changeset/wicked-pans-wait.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Allow importing public files in SSR
diff --git a/packages/astro/package.json b/packages/astro/package.json
index 6fbed246f5c6..2ff25b26785a 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -146,7 +146,7 @@
"recast": "^0.20.5",
"rehype": "^12.0.1",
"resolve": "^1.22.0",
- "rollup": "~2.78.0",
+ "rollup": "^2.79.1",
"semver": "^7.3.7",
"shiki": "^0.11.1",
"sirv": "^2.0.2",
@@ -158,7 +158,7 @@
"typescript": "*",
"unist-util-visit": "^4.1.0",
"vfile": "^5.3.2",
- "vite": "~3.1.3",
+ "vite": "~3.2.1",
"vitefu": "^0.1.0",
"yargs-parser": "^21.0.1",
"zod": "^3.17.3"
diff --git a/packages/astro/src/core/build/static-build.ts b/packages/astro/src/core/build/static-build.ts
index 3746fc583eeb..79a746c7d339 100644
--- a/packages/astro/src/core/build/static-build.ts
+++ b/packages/astro/src/core/build/static-build.ts
@@ -124,6 +124,7 @@ async function ssrBuild(opts: StaticBuildOptions, internals: BuildInternals, inp
emptyOutDir: false,
manifest: false,
outDir: fileURLToPath(out),
+ copyPublicDir: !ssr,
rollupOptions: {
...viteConfig.build?.rollupOptions,
input: [],
@@ -138,7 +139,7 @@ async function ssrBuild(opts: StaticBuildOptions, internals: BuildInternals, inp
ssr: true,
// improve build performance
minify: false,
- polyfillModulePreload: false,
+ modulePreload: { polyfill: false },
reportCompressedSize: false,
},
plugins: [
@@ -154,7 +155,6 @@ async function ssrBuild(opts: StaticBuildOptions, internals: BuildInternals, inp
settings.config.output === 'server' && vitePluginSSR(internals, settings.adapter!),
vitePluginAnalyzer(internals),
],
- publicDir: ssr ? false : viteConfig.publicDir,
envPrefix: 'PUBLIC_',
base: settings.config.base,
};
diff --git a/packages/astro/test/fixtures/vue-component/public/favicon.svg b/packages/astro/test/fixtures/vue-component/public/favicon.svg
new file mode 100644
index 000000000000..0f3906297879
--- /dev/null
+++ b/packages/astro/test/fixtures/vue-component/public/favicon.svg
@@ -0,0 +1,13 @@
+
diff --git a/packages/astro/test/fixtures/vue-component/src/components/Img.vue b/packages/astro/test/fixtures/vue-component/src/components/Img.vue
new file mode 100644
index 000000000000..7c521a62a13a
--- /dev/null
+++ b/packages/astro/test/fixtures/vue-component/src/components/Img.vue
@@ -0,0 +1,3 @@
+
+
+
diff --git a/packages/astro/test/fixtures/vue-component/src/pages/index.astro b/packages/astro/test/fixtures/vue-component/src/pages/index.astro
index 7cae724dc9b1..f8d808f70046 100644
--- a/packages/astro/test/fixtures/vue-component/src/pages/index.astro
+++ b/packages/astro/test/fixtures/vue-component/src/pages/index.astro
@@ -1,5 +1,6 @@
---
import Counter from '../components/Counter.vue'
+import Img from '../components/Img.vue'
---
@@ -28,6 +29,7 @@ import Counter from '../components/Counter.vue'
SSR Rendered, client:visible
SSR Rendered, client:visible
+
diff --git a/packages/astro/test/vue-component.test.js b/packages/astro/test/vue-component.test.js
index 5ee632a47e43..07d2cdad7dc6 100644
--- a/packages/astro/test/vue-component.test.js
+++ b/packages/astro/test/vue-component.test.js
@@ -39,6 +39,9 @@ describe('Vue component', () => {
// test 5: components with identical render output and props have been deduplicated
const uniqueRootUIDs = $('astro-island').map((i, el) => $(el).attr('uid'));
expect(new Set(uniqueRootUIDs).size).to.equal(5);
+
+ // test 6: import public files work
+ expect($('#vue-img')).to.be.ok;
});
});
diff --git a/packages/webapi/package.json b/packages/webapi/package.json
index ad34d105b7d9..72e1d65b9fc9 100644
--- a/packages/webapi/package.json
+++ b/packages/webapi/package.json
@@ -70,7 +70,7 @@
"formdata-polyfill": "^4.0.10",
"magic-string": "^0.25.9",
"mocha": "^9.2.2",
- "rollup": "^2.75.6",
+ "rollup": "^2.79.1",
"rollup-plugin-terser": "^7.0.2",
"tslib": "^2.4.0",
"typescript": "~4.7.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9a8638caeb3c..1f451f101931 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -439,7 +439,7 @@ importers:
rehype-toc: ^3.0.2
remark-code-titles: ^0.1.2
resolve: ^1.22.0
- rollup: ~2.78.0
+ rollup: ^2.79.1
sass: ^1.52.2
semver: ^7.3.7
shiki: ^0.11.1
@@ -454,7 +454,7 @@ importers:
unified: ^10.1.2
unist-util-visit: ^4.1.0
vfile: ^5.3.2
- vite: ~3.1.3
+ vite: ~3.2.1
vitefu: ^0.1.0
yargs-parser: ^21.0.1
zod: ^3.17.3
@@ -505,7 +505,7 @@ importers:
recast: 0.20.5
rehype: 12.0.1
resolve: 1.22.1
- rollup: 2.78.1
+ rollup: 2.79.1
semver: 7.3.8
shiki: 0.11.1
sirv: 2.0.2
@@ -517,8 +517,8 @@ importers:
typescript: 4.8.4
unist-util-visit: 4.1.1
vfile: 5.3.5
- vite: 3.1.8_sass@1.55.0
- vitefu: 0.1.0_vite@3.1.8
+ vite: 3.2.1_sass@1.55.0
+ vitefu: 0.1.0_vite@3.2.1
yargs-parser: 21.1.1
zod: 3.19.1
devDependencies:
@@ -3449,7 +3449,7 @@ importers:
magic-string: ^0.25.9
mocha: ^9.2.2
node-fetch: ^3.2.5
- rollup: ^2.75.6
+ rollup: ^2.79.1
rollup-plugin-terser: ^7.0.2
tslib: ^2.4.0
typescript: ~4.7.3
@@ -16463,14 +16463,6 @@ packages:
dependencies:
estree-walker: 0.6.1
- /rollup/2.78.1:
- resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==}
- engines: {node: '>=10.0.0'}
- hasBin: true
- optionalDependencies:
- fsevents: 2.3.2
- dev: false
-
/rollup/2.79.1:
resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
engines: {node: '>=10.0.0'}
@@ -17956,14 +17948,15 @@ packages:
- supports-color
dev: false
- /vite/3.1.8_sass@1.55.0:
- resolution: {integrity: sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==}
+ /vite/3.2.0:
+ resolution: {integrity: sha512-Ovj7+cqIdM1I0LPCk2CWxzgADXMix3NLXpUT6g7P7zg/a9grk/TaC3qn9YMg7w7M0POIVCBOp1aBANJW+RH7oA==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
less: '*'
sass: '*'
stylus: '*'
+ sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
less:
@@ -17972,20 +17965,20 @@ packages:
optional: true
stylus:
optional: true
+ sugarss:
+ optional: true
terser:
optional: true
dependencies:
esbuild: 0.15.12
postcss: 8.4.18
resolve: 1.22.1
- rollup: 2.78.1
- sass: 1.55.0
+ rollup: 2.79.1
optionalDependencies:
fsevents: 2.3.2
- dev: false
- /vite/3.2.0:
- resolution: {integrity: sha512-Ovj7+cqIdM1I0LPCk2CWxzgADXMix3NLXpUT6g7P7zg/a9grk/TaC3qn9YMg7w7M0POIVCBOp1aBANJW+RH7oA==}
+ /vite/3.2.1_sass@1.55.0:
+ resolution: {integrity: sha512-ADtMkfHuWq4tskJsri2n2FZkORO8ZyhI+zIz7zTrDAgDEtct1jdxOg3YsZBfHhKjmMoWLOSCr+64qrEDGo/DbQ==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
@@ -18010,10 +18003,12 @@ packages:
postcss: 8.4.18
resolve: 1.22.1
rollup: 2.79.1
+ sass: 1.55.0
optionalDependencies:
fsevents: 2.3.2
+ dev: false
- /vitefu/0.1.0_vite@3.1.8:
+ /vitefu/0.1.0_vite@3.2.1:
resolution: {integrity: sha512-5MQSHP9yr0HIve8q4XNb7QXfO1P4tzZDZP99qH0FM5ClcwYddeGXRDQ4TQYRUeXLjZ+vLecirHtGNpwFFUF7sw==}
peerDependencies:
vite: ^3.0.0
@@ -18022,7 +18017,7 @@ packages:
optional: true
dependencies:
import-meta-resolve: 2.1.0
- vite: 3.1.8_sass@1.55.0
+ vite: 3.2.1_sass@1.55.0
dev: false
/vitest/0.20.3: