Skip to content

Commit

Permalink
Upgrade to Vite 4
Browse files Browse the repository at this point in the history
  • Loading branch information
benmccann committed Nov 14, 2022
1 parent 40a68de commit 559b053
Show file tree
Hide file tree
Showing 38 changed files with 265 additions and 290 deletions.
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -29,7 +29,7 @@
"@svitejs/changesets-changelog-github-compact": "^0.1.1",
"playwright": "1.25.0",
"prettier": "^2.7.1",
"rollup": "^2.79.1",
"rollup": "^3.2.5",
"svelte": "^3.52.0",
"tiny-glob": "^0.2.9",
"turbo": "^1.6.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/adapter-cloudflare-workers/package.json
Expand Up @@ -31,7 +31,7 @@
"dependencies": {
"@cloudflare/workers-types": "^3.18.0",
"@iarna/toml": "^2.2.5",
"esbuild": "^0.15.12"
"esbuild": "^0.15.13"
},
"devDependencies": {
"@cloudflare/kv-asset-handler": "^0.2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/adapter-cloudflare/package.json
Expand Up @@ -33,7 +33,7 @@
},
"dependencies": {
"@cloudflare/workers-types": "^3.18.0",
"esbuild": "^0.15.12",
"esbuild": "^0.15.13",
"worktop": "0.8.0-next.14"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions packages/adapter-netlify/package.json
Expand Up @@ -33,7 +33,7 @@
},
"dependencies": {
"@iarna/toml": "^2.2.5",
"esbuild": "^0.15.12",
"esbuild": "^0.15.13",
"set-cookie-parser": "^2.5.1"
},
"devDependencies": {
Expand All @@ -45,7 +45,7 @@
"@types/node": "^16.11.68",
"@types/set-cookie-parser": "^2.4.2",
"rimraf": "^3.0.2",
"rollup": "^2.79.1",
"rollup": "^3.2.5",
"typescript": "^4.8.4",
"uvu": "^0.5.6"
}
Expand Down
2 changes: 1 addition & 1 deletion packages/adapter-node/package.json
Expand Up @@ -45,6 +45,6 @@
"@rollup/plugin-commonjs": "^23.0.2",
"@rollup/plugin-json": "^5.0.1",
"@rollup/plugin-node-resolve": "^15.0.1",
"rollup": "^2.79.1"
"rollup": "^3.2.5"
}
}
2 changes: 1 addition & 1 deletion packages/adapter-static/package.json
Expand Up @@ -31,6 +31,6 @@
"svelte": "^3.52.0",
"typescript": "^4.8.4",
"uvu": "^0.5.6",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
}
}
2 changes: 1 addition & 1 deletion packages/adapter-static/test/apps/prerendered/package.json
Expand Up @@ -10,7 +10,7 @@
"devDependencies": {
"@sveltejs/kit": "workspace:*",
"svelte": "^3.52.0",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/adapter-static/test/apps/spa/package.json
Expand Up @@ -12,7 +12,7 @@
"@sveltejs/kit": "workspace:*",
"sirv-cli": "^2.0.2",
"svelte": "^3.52.0",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/adapter-vercel/package.json
Expand Up @@ -29,7 +29,7 @@
},
"dependencies": {
"@vercel/nft": "^0.22.1",
"esbuild": "^0.15.12"
"esbuild": "^0.15.13"
},
"devDependencies": {
"@sveltejs/kit": "workspace:*",
Expand Down
2 changes: 1 addition & 1 deletion packages/create-svelte/templates/default/package.json
Expand Up @@ -14,7 +14,7 @@
"svelte": "^3.52.0",
"svelte-preprocess": "^4.10.7",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module",
"dependencies": {
Expand Down
4 changes: 2 additions & 2 deletions packages/kit/package.json
Expand Up @@ -32,12 +32,12 @@
"@types/sade": "^1.7.4",
"@types/set-cookie-parser": "^2.4.2",
"marked": "^4.1.1",
"rollup": "^2.79.1",
"rollup": "^3.2.5",
"svelte": "^3.52.0",
"svelte-preprocess": "^4.10.7",
"typescript": "^4.8.4",
"uvu": "^0.5.6",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"peerDependencies": {
"svelte": "^3.44.0",
Expand Down
76 changes: 1 addition & 75 deletions packages/kit/src/exports/vite/dev/index.js
@@ -1,7 +1,6 @@
import fs from 'fs';
import colors from 'kleur';
import path from 'path';
import sirv from 'sirv';
import { URL } from 'url';
import { getRequest, setResponse } from '../../../exports/node/index.js';
import { installPolyfills } from '../../../exports/node/polyfills.js';
Expand Down Expand Up @@ -230,41 +229,6 @@ export async function dev(vite, vite_config, svelte_config) {
});

const assets = svelte_config.kit.paths.assets ? SVELTE_KIT_ASSETS : svelte_config.kit.paths.base;
const asset_server = sirv(svelte_config.kit.files.assets, {
dev: true,
etag: true,
maxAge: 0,
extensions: []
});

vite.middlewares.use(async (req, res, next) => {
try {
const base = `${vite.config.server.https ? 'https' : 'http'}://${
req.headers[':authority'] || req.headers.host
}`;

const decoded = decodeURI(new URL(base + req.url).pathname);

if (decoded.startsWith(assets)) {
const pathname = decoded.slice(assets.length);
const file = svelte_config.kit.files.assets + pathname;

if (fs.existsSync(file) && !fs.statSync(file).isDirectory()) {
if (has_correct_case(file, svelte_config.kit.files.assets)) {
req.url = encodeURI(pathname); // don't need query/hash
asset_server(req, res);
return;
}
}
}

next();
} catch (e) {
const error = coalesce_to_error(e);
res.statusCode = 500;
res.end(fix_stack_trace(error));
}
});

return () => {
const serve_static_middleware = vite.middlewares.stack.find(
Expand Down Expand Up @@ -295,13 +259,6 @@ export async function dev(vite, vite_config, svelte_config) {
return;
}

if (!decoded.startsWith(svelte_config.kit.paths.base)) {
return not_found(
res,
`Not found (did you mean ${svelte_config.kit.paths.base + req.url}?)`
);
}

if (decoded === svelte_config.kit.paths.base + '/service-worker.js') {
const resolved = resolve_entry(svelte_config.kit.files.serviceWorker);

Expand Down Expand Up @@ -498,21 +455,11 @@ export async function dev(vite, vite_config, svelte_config) {
};
}

/** @param {import('http').ServerResponse} res */
function not_found(res, message = 'Not found') {
res.statusCode = 404;
res.end(message);
}

/**
* @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'];
const static_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)) {
Expand Down Expand Up @@ -563,24 +510,3 @@ async function find_deps(vite, node, deps) {

await Promise.all(branches);
}

/**
* Determine if a file is being requested with the correct case,
* to ensure consistent behaviour between dev and prod and across
* operating systems. Note that we can't use realpath here,
* because we don't want to follow symlinks
* @param {string} file
* @param {string} assets
* @returns {boolean}
*/
function has_correct_case(file, assets) {
if (file === assets) return true;

const parent = path.dirname(file);

if (fs.readdirSync(parent).includes(path.basename(file))) {
return has_correct_case(parent, assets);
}

return false;
}
2 changes: 1 addition & 1 deletion packages/kit/src/exports/vite/index.js
Expand Up @@ -243,7 +243,7 @@ function kit() {
/** @type {import('vite').UserConfig} */
const result = {
appType: 'custom',
base: './',
base: svelte_config.kit.paths.base,
build: {
rollupOptions: {
// Vite dependency crawler needs an explicit JS entry point
Expand Down
6 changes: 5 additions & 1 deletion packages/kit/src/exports/vite/preview/index.js
Expand Up @@ -73,7 +73,11 @@ export async function preview(vite, vite_config, svelte_config) {
next();
} else {
res.statusCode = 404;
res.end(`Not found (did you mean ${base + pathname}?)`);
res.end(
`The server is configured with a public base URL of ${base} - did you mean to visit <a href="${
base + pathname
}">${base + pathname}</a> instead?`
);
}
});

Expand Down
2 changes: 1 addition & 1 deletion packages/kit/test/apps/amp/package.json
Expand Up @@ -19,7 +19,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/kit/test/apps/basics/package.json
Expand Up @@ -18,7 +18,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/kit/test/apps/dev-only/package.json
Expand Up @@ -16,7 +16,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/kit/test/apps/options-2/package.json
Expand Up @@ -18,7 +18,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/kit/test/apps/options/package.json
Expand Up @@ -17,7 +17,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
6 changes: 4 additions & 2 deletions packages/kit/test/apps/options/test/test.js
Expand Up @@ -7,9 +7,11 @@ test.describe.configure({ mode: 'parallel' });

test.describe('base path', () => {
test('serves a useful 404 when visiting unprefixed path', async ({ request }) => {
const response = await request.get('/');
const response = await request.get('/slash/', { headers: { Accept: 'text/html' } });
expect(response.status()).toBe(404);
expect(await response.text()).toBe('Not found (did you mean /path-base/?)');
expect(await response.text()).toBe(
'The server is configured with a public base URL of /path-base - did you mean to visit <a href="/path-base/slash/">/path-base/slash/</a> instead?'
);
});

test('serves /', async ({ page, javaScriptEnabled }) => {
Expand Down
2 changes: 1 addition & 1 deletion packages/kit/test/apps/writes/package.json
Expand Up @@ -18,7 +18,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
Expand Up @@ -9,12 +9,12 @@
"check": "svelte-kit sync && tsc && svelte-check"
},
"devDependencies": {
"@sveltejs/kit": "workspace:*",
"@sveltejs/adapter-auto": "workspace:*",
"@sveltejs/kit": "workspace:*",
"svelte": "^3.48.0",
"svelte-check": "^2.7.1",
"typescript": "^4.8.2",
"vite": "^3.1.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
Expand Up @@ -14,7 +14,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
Expand Up @@ -14,7 +14,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
Expand Up @@ -14,7 +14,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
Expand Up @@ -14,7 +14,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
Expand Up @@ -15,7 +15,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
Expand Up @@ -14,7 +14,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}
Expand Up @@ -14,7 +14,7 @@
"svelte": "^3.52.0",
"svelte-check": "^2.9.2",
"typescript": "^4.8.4",
"vite": "^3.2.1"
"vite": "^4.0.0-alpha.2"
},
"type": "module"
}

0 comments on commit 559b053

Please sign in to comment.