Skip to content

Commit

Permalink
Revert "set Vite's publicDir option (#5648)"
Browse files Browse the repository at this point in the history
This reverts commit 2cdcd14.
  • Loading branch information
Rich-Harris authored Jul 23, 2022
1 parent 953c598 commit d285a73
Show file tree
Hide file tree
Showing 8 changed files with 25 additions and 21 deletions.
6 changes: 0 additions & 6 deletions .changeset/modern-jars-return.md

This file was deleted.

1 change: 1 addition & 0 deletions packages/adapter-node/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export default function (opts = {}) {
if (precompress) {
builder.log.minor('Compressing assets');
await compress(`${out}/client`);
await compress(`${out}/static`);
await compress(`${out}/prerendered`);
}
}
Expand Down
5 changes: 4 additions & 1 deletion packages/kit/src/core/adapt/builder.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,10 @@ export function create_builder({ config, build_data, prerendered, log }) {
},

writeClient(dest) {
return [...copy(`${config.kit.outDir}/output/client`, dest)];
return [
...copy(`${config.kit.outDir}/output/client`, dest),
...copy(config.kit.files.assets, dest)
];
},

writePrerendered(dest, { fallback } = {}) {
Expand Down
8 changes: 7 additions & 1 deletion packages/kit/src/core/adapt/builder.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,13 @@ test('copy files', () => {
builder.writeClient(dest);

assert.equal(
glob('**', { cwd: `${outDir}/output/client`, dot: true }),
[
...glob('**', {
cwd: /** @type {import('types').ValidatedConfig} */ (mocked).kit.files.assets,
dot: true
}),
...glob('**', { cwd: `${outDir}/output/client`, dot: true })
],
glob('**', { cwd: dest, dot: true })
);

Expand Down
4 changes: 3 additions & 1 deletion packages/kit/src/vite/build/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,9 @@ export const get_default_config = function ({ config, input, ssr, outDir }) {
__SVELTEKIT_APP_VERSION_POLL_INTERVAL__: JSON.stringify(config.kit.version.pollInterval),
__SVELTEKIT_DEV__: 'false'
},
publicDir: ssr ? false : config.kit.files.assets,
// prevent Vite copying the contents of `config.kit.files.assets`,
// if it happens to be 'public' instead of 'static'
publicDir: false,
resolve: {
alias: get_aliases(config.kit)
},
Expand Down
14 changes: 5 additions & 9 deletions packages/kit/src/vite/dev/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ export async function dev(vite, vite_config, svelte_config) {
/** @type {function} */ (middleware.handle).name === 'viteServeStaticMiddleware'
);

remove_static_middlewares(vite.middlewares);
remove_html_middlewares(vite.middlewares);

vite.middlewares.use(async (req, res) => {
try {
Expand Down Expand Up @@ -389,15 +389,11 @@ function not_found(res, message = 'Not found') {
/**
* @param {import('connect').Server} server
*/
function remove_static_middlewares(server) {
// We don't use viteServePublicMiddleware because of the following issues:
// https://github.com/vitejs/vite/issues/9260
// https://github.com/vitejs/vite/issues/9236
// https://github.com/vitejs/vite/issues/9234
const static_middlewares = ['viteServePublicMiddleware', 'viteServeStaticMiddleware'];
function remove_html_middlewares(server) {
const html_middlewares = ['viteServeStaticMiddleware'];
for (let i = server.stack.length - 1; i > 0; i--) {
// @ts-expect-error using internals
if (static_middlewares.includes(server.stack[i].handle.name)) {
// @ts-expect-error using internals until https://github.com/vitejs/vite/pull/4640 is merged
if (html_middlewares.includes(server.stack[i].handle.name)) {
server.stack.splice(i, 1);
}
}
Expand Down
1 change: 0 additions & 1 deletion packages/kit/src/vite/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,6 @@ function kit() {
__SVELTEKIT_DEV__: 'true',
__SVELTEKIT_APP_VERSION_POLL_INTERVAL__: '0'
},
publicDir: svelte_config.kit.files.assets,
resolve: {
alias: get_aliases(svelte_config.kit)
},
Expand Down
7 changes: 5 additions & 2 deletions packages/kit/src/vite/preview/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,16 @@ export async function preview(vite, config, protocol) {
const server = new Server(manifest);

return () => {
// generated client assets and the contents of `static`
// files in `static`
vite.middlewares.use(scoped(assets, mutable(config.kit.files.assets)));

// immutable generated client assets
vite.middlewares.use(
scoped(
assets,
sirv(join(config.kit.outDir, 'output/client'), {
setHeaders: (res, pathname) => {
// only apply to immutable directory, not e.g. version.json
// only apply to build directory, not e.g. version.json
if (pathname.startsWith(`/${config.kit.appDir}/immutable`)) {
res.setHeader('cache-control', 'public,max-age=31536000,immutable');
}
Expand Down

0 comments on commit d285a73

Please sign in to comment.