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: