Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vite 3 support #359

Merged
merged 26 commits into from
Jul 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
2b9083b
wip: switch to vite3 alpha, fix type changes, generate optimize confi…
dominikg May 31, 2022
0c2b722
wip: update to alpha.9, fix tests, ensure all svelte/ deps are ssr.no…
dominikg Jun 1, 2022
4e9f2fe
chore: add changeset
dominikg Jun 1, 2022
1aadea0
update to vite 3.0.0-alpha.10 after rebase
dominikg Jun 10, 2022
6c5ed44
chore: update vite to alpha.11
bluwy Jun 15, 2022
6242f28
chore: merge main
bluwy Jun 21, 2022
4ccad72
chore: update vite beta
bluwy Jun 21, 2022
922598a
fix: handle localhost change
bluwy Jun 22, 2022
e05b8e3
chore: upgrade to beta.1
bluwy Jun 22, 2022
823093c
fix: handle breaking changes
bluwy Jun 22, 2022
5c06150
chore: update beta 2
bluwy Jun 25, 2022
2d28957
upgrade to vite 3.0.0-beta.5 (#381)
benmccann Jul 1, 2022
b4a412a
chore: merge main
bluwy Jul 2, 2022
fde3eb8
chore: merge main
bluwy Jul 4, 2022
8d41d48
chore: add missing test dep
bluwy Jul 6, 2022
27e167d
chore: revert ssr handling
bluwy Jul 6, 2022
d7da219
chore: remove ts-expect-error
bluwy Jul 6, 2022
6a60f99
Merge branch 'main' into vite-3
dominikg Jul 11, 2022
417a6fb
upgrade to 3.0.0-beta.9 (#387)
benmccann Jul 11, 2022
09c51e9
chore: merge main
bluwy Jul 12, 2022
5aa60fd
chore: update beta.10
bluwy Jul 12, 2022
c8beb2c
Merge branch 'main' into vite-3
dominikg Jul 13, 2022
66ae0ed
fix: update generated ssr.noExternal config to always include all sve…
dominikg Jul 13, 2022
8c1b26c
chore: add changeset to raise visibility for recent vite3 related change
dominikg Jul 13, 2022
8ba4e57
chore: align min node version with vite 3
dominikg Jul 13, 2022
b882c52
chore: update dependency to vite 3.0.0 final
dominikg Jul 13, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/five-moles-swim.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@sveltejs/vite-plugin-svelte': patch
---

Always add dependencies using svelte to ssr.noExternal in vite config
5 changes: 5 additions & 0 deletions .changeset/metal-jeans-jam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@sveltejs/vite-plugin-svelte': major
---

update to vite3
5 changes: 5 additions & 0 deletions .changeset/nervous-bottles-lay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@sveltejs/vite-plugin-svelte': major
---

bump minimum required node version to 14.18.0 to align with vite 3
10 changes: 6 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
"rimraf": "^3.0.2",
"svelte": "^3.49.0",
"typescript": "^4.7.4",
"vite": "^2.9.14",
"vite": "^3.0.0",
"vitest": "^0.18.0"
},
"lint-staged": {
Expand All @@ -60,16 +60,18 @@
"pnpm": "^7.5.1",
"yarn": "forbidden, use pnpm",
"npm": "forbidden, use pnpm",
"node": "^14.13.1 || >= 16"
"node": "^14.18.0 || >= 16"
},
"pnpm": {
"overrides": {
"@sveltejs/vite-plugin-svelte": "workspace:*"
"@sveltejs/vite-plugin-svelte": "workspace:*",
"vite": "^3.0.0"
},
"peerDependencyRules": {
"allowedVersions": {
"stylus": "^0.58.0",
"postcss-load-config": "^4.0.0"
"postcss-load-config": "^4.0.0",
"vite": "^3.0.0"
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,8 @@
},
"./package.json": "./package.json"
},
"type": "module"
"type": "module",
"dependencies": {
"svelte": "^3.48.0"
}
}
2 changes: 1 addition & 1 deletion packages/e2e-tests/autoprefixer-browerslist/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"postcss-load-config": "^4.0.1",
"svelte": "^3.49.0",
"svelte-preprocess": "^4.10.7",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/e2e-tests/configfile-custom/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "workspace:*",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/e2e-tests/configfile-esm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"@sveltejs/vite-plugin-svelte": "workspace:*",
"svelte": "^3.49.0",
"svelte-preprocess": "^4.10.7",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"type": "module"
}
4 changes: 2 additions & 2 deletions packages/e2e-tests/custom-extensions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
},
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "workspace:*",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"svelte": "^3.9.0",
"vite": "^3.0.0"
},
"type": "module"
}
7 changes: 5 additions & 2 deletions packages/e2e-tests/e2e-server.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@ async function startedOnPort(serverProcess, port, timeout) {
stdoutListener = (data) => {
const str = data.toString();
// hack, console output may contain color code gibberish
// skip gibberish between localhost: and port number
const match = str.match(/(http:\/\/localhost:)(?:.*)(\d{4})/);
// skip gibberish between localhost: and port number.
// Vite may print other host then `localhost` for machines
// with different DNS resove order, as Node <17 does not
// respect the order by default.
const match = str.match(/(http:\/\/(?:localhost|127.0.0.1|\[::1\]):)(?:.*)(\d{4})/);
if (match) {
const startedPort = parseInt(match[2], 10);
if (startedPort === port) {
Expand Down
2 changes: 1 addition & 1 deletion packages/e2e-tests/env/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "workspace:*",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/e2e-tests/hmr/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"e2e-test-dep-vite-plugins": "workspace:*",
"node-fetch": "^3.2.4",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/e2e-tests/inspector-vite/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "workspace:*",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"vite": "^3.0.0"
}
}
4 changes: 2 additions & 2 deletions packages/e2e-tests/kit-node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
"devDependencies": {
"@sveltejs/adapter-node": "^1.0.0-next.79",
"@sveltejs/kit": "^1.0.0-next.370",
"e2e-test-dep-svelte-api-only": "workspace:*",
"e2e-test-dep-vite-plugins": "workspace:*",
"e2e-test-dep-svelte-api-only": "file:../_test_dependencies/svelte-api-only",
"e2e-test-dep-vite-plugins": "file:../_test_dependencies/vite-plugins",
"svelte": "^3.49.0",
"svelte-check": "^2.8.0",
"svelte-i18n": "^3.4.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/e2e-tests/package-json-svelte-field/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "workspace:*",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"type": "module"
}
2 changes: 1 addition & 1 deletion packages/e2e-tests/preprocess-with-vite/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"sass": "^1.53.0",
"stylus": "^0.58.1",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"type": "commonjs"
}
3 changes: 2 additions & 1 deletion packages/e2e-tests/svelte-preprocess/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@
},
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "workspace:*",
"sass": "^1.52.3",
"svelte": "^3.49.0",
"svelte-preprocess": "^4.10.7",
"typescript": "^4.7.4",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"type": "module"
}
6 changes: 2 additions & 4 deletions packages/e2e-tests/testUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -219,10 +219,8 @@ export async function waitForNavigation(opts: Parameters<typeof page.waitForNavi
});
}

export async function fetchPageText(forceIpv4 = false) {
// force ip v4 in dev as Vite also forces it.
// this will be fixed in Vite 3 when we can removed this trick.
const url = page.url().replace('localhost', forceIpv4 ? '127.0.0.1' : 'localhost');
export async function fetchPageText() {
const url = page.url();
const res = await fetch(url);
if (res.ok) {
return res.text();
Expand Down
2 changes: 1 addition & 1 deletion packages/e2e-tests/ts-type-import/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"@types/node": "^17.0.36",
"svelte": "^3.49.0",
"svelte-preprocess": "^4.10.7",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"type": "module"
}
4 changes: 2 additions & 2 deletions packages/e2e-tests/vite-ssr-esm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"express": "^4.18.1",
"npm-run-all": "^4.1.5",
"serve-static": "^1.15.0",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"svelte": "^3.9.0",
"vite": "^3.0.0"
}
}
1 change: 1 addition & 0 deletions packages/e2e-tests/vite-ssr-esm/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ async function createServer(root = process.cwd(), isProd = process.env.NODE_ENV
if (!isProd) {
const inlineCfg = {
root,
appType: 'custom',
server: {
middlewareMode: true,
port
Expand Down
2 changes: 1 addition & 1 deletion packages/e2e-tests/vite-ssr/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@
"express": "^4.18.1",
"serve-static": "^1.15.0",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"vite": "^3.0.0"
}
}
2 changes: 2 additions & 0 deletions packages/e2e-tests/vite-ssr/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ async function createServer(root = process.cwd(), isProd = process.env.NODE_ENV
if (!isProd) {
const inlineCfg = {
root,
appType: 'custom',
server: {
middlewareMode: true,
port
Expand Down Expand Up @@ -71,6 +72,7 @@ async function createServer(root = process.cwd(), isProd = process.env.NODE_ENV
const html = template
.replace(`<!--head-outlet-->`, headElements)
.replace(`<!--app-outlet-->`, appHtml);
console.log(html);

res.status(200).set({ 'Content-Type': 'text/html' }).end(html);
} catch (e) {
Expand Down
3 changes: 3 additions & 0 deletions packages/e2e-tests/vite-ssr/vite.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ module.exports = defineConfig(({ command, mode }) => {
}
})
],
ssr: {
format: 'cjs'
},
build: {
target: 'esnext',
minify: false,
Expand Down
2 changes: 1 addition & 1 deletion packages/playground/big-component-library/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"@sveltejs/vite-plugin-svelte": "workspace:*",
"carbon-components-svelte": "^0.67.0",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"vite": "^3.0.0"
},
"dependencies": {
"lodash-es": "^4.17.21"
Expand Down
2 changes: 1 addition & 1 deletion packages/playground/big/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "workspace:*",
"svelte": "^3.49.0",
"vite": "^2.9.14"
"vite": "^3.0.0"
}
}
2 changes: 1 addition & 1 deletion packages/playground/optimizedeps-include/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
"@sveltejs/vite-plugin-svelte": "workspace:*",
"svelte": "^3.49.0",
"tinro": "^0.6.12",
"vite": "^2.9.14"
"vite": "^3.0.0"
}
}
2 changes: 1 addition & 1 deletion packages/playground/windicss/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"@sveltejs/vite-plugin-svelte": "workspace:*",
"diff-match-patch": "^1.0.5",
"svelte": "^3.49.0",
"vite": "^2.9.14",
"vite": "^3.0.0",
"vite-plugin-windicss": "^1.8.6"
}
}
6 changes: 3 additions & 3 deletions packages/vite-plugin-svelte/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"build": "pnpm build:ci --dts --sourcemap"
},
"engines": {
"node": "^14.13.1 || >= 16"
"node": "^14.18.0 || >= 16"
},
"repository": {
"type": "git",
Expand Down Expand Up @@ -56,7 +56,7 @@
"peerDependencies": {
"diff-match-patch": "^1.0.5",
"svelte": "^3.44.0",
"vite": "^2.9.0"
"vite": "^3.0.0"
},
"peerDependenciesMeta": {
"diff-match-patch": {
Expand All @@ -72,6 +72,6 @@
"rollup": "^2.76.0",
"svelte": "^3.49.0",
"tsup": "^6.1.3",
"vite": "^2.9.14"
"vite": "^3.0.0"
}
}
7 changes: 3 additions & 4 deletions packages/vite-plugin-svelte/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@ export function svelte(inlineOptions?: Partial<Options>): Plugin[] {
if (isSvelteMetadataChanged) {
// Force Vite to optimize again. Although we mutate the config here, it works because
// Vite's optimizer runs after `buildStart()`.
viteConfig.server.force = true;
// TODO: verify this works in vite3
viteConfig.optimizeDeps.force = true;
}
},

Expand All @@ -101,9 +102,7 @@ export function svelte(inlineOptions?: Partial<Options>): Plugin[] {
},

load(id, opts) {
// @ts-expect-error anticipate vite changing second parameter as options object
// see https://github.com/vitejs/vite/discussions/5109
const ssr: boolean = opts === true || opts?.ssr;
const ssr = !!opts?.ssr;
const svelteRequest = requestParser(id, !!ssr);
if (svelteRequest) {
const { filename, query } = svelteRequest;
Expand Down
Loading