Skip to content

Commit 5100376

Browse files
authored
feat: restart server when svelte config file changes (fixes #63) (#72)
* feat: restart server when svelte config file changes (fixes #63) * fix: make sure the absolute path of the loaded svelte config file is kept in resolvedOptions * refactor: use package.json scripts and execa to start servers for e2e-tests; add tests for svelte config watching * fix: remove syntax not supported by node12 from e2e script * fix: use writeFileSync instead of fs/promises for node12 * chore: remove debugging screenshots * chore: update dependencies * test: move to lower portrange and archive dist on failure * test: fix e2e-server script. correct error output and don't throw if closing server wasn't graceful * fix: really bad c&p err * test: increase sleep time on windows to account for slower devserver restart * fix invalid doc * chore: update changeset
1 parent 97ee68c commit 5100376

File tree

42 files changed

+1059
-850
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1059
-850
lines changed

.changeset/large-ears-press.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@sveltejs/vite-plugin-svelte': minor
3+
---
4+
5+
- Restart dev server when svelte config file changes
6+
- Refactored e2e-tests to use package.json scripts
7+
- Updated dependencies

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ jobs:
168168
- name: archive tests temp directory
169169
if: failure()
170170
shell: bash
171-
run: tar -cvf test-temp.tar --exclude="node_modules" --exclude=".yarn" --exclude="dist" --exclude=".pnp.js" temp/
171+
run: tar -cvf test-temp.tar --exclude="node_modules" temp/
172172
- uses: actions/upload-artifact@v2
173173
if: failure()
174174
with:

package.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
"build": "pnpm --dir packages/vite-plugin-svelte build",
88
"test": "run-s test:serve test:build",
99
"test:serve": "jest",
10-
"test:serve:debug": "cross-env VITE_DEBUG_SERVE=1 node --inspect-brk ./node_modules/.bin/jest",
10+
"test:serve:debug": "cross-env DEBUG=pw:api VITE_DEBUG_SERVE=1 node --inspect-brk ./node_modules/jest/bin/jest --runInBand",
1111
"test:build": "cross-env VITE_TEST_BUILD=1 jest",
12-
"test:build:debug": "cross-env VITE_TEST_BUILD=1 VITE_PRESERVE_BUILD_ARTIFACTS=1 node --inspect-brk ./node_modules/.bin/jest",
12+
"test:build:debug": "cross-env DEBUG=pw:api VITE_TEST_BUILD=1 VITE_PRESERVE_BUILD_ARTIFACTS=1 node --inspect-brk ./node_modules/jest/bin/jest --runInBand",
1313
"test:ci": "run-s test:ci:serve test:ci:build",
1414
"test:ci:serve": "cross-env VITE_PRESERVE_BUILD_ARTIFACTS=1 jest --verbose --no-cache --runInBand --force-exit --ci --json --outputFile=\"temp/serve/jest-results.json\"",
1515
"test:ci:build": "cross-env VITE_TEST_BUILD=1 VITE_PRESERVE_BUILD_ARTIFACTS=1 jest --verbose --no-cache --runInBand --force-exit --ci --json --outputFile=\"temp/build/jest-results.json\"",
@@ -27,14 +27,14 @@
2727
"@changesets/cli": "^2.16.0",
2828
"@types/fs-extra": "^9.0.11",
2929
"@types/jest": "^26.0.23",
30-
"@types/node": "^15.12.4",
30+
"@types/node": "^15.12.5",
3131
"@types/semver": "^7.3.6",
32-
"@typescript-eslint/eslint-plugin": "^4.28.0",
33-
"@typescript-eslint/parser": "^4.28.0",
32+
"@typescript-eslint/eslint-plugin": "^4.28.1",
33+
"@typescript-eslint/parser": "^4.28.1",
3434
"chalk": "^4.1.1",
3535
"cross-env": "^7.0.3",
3636
"enquirer": "^2.3.6",
37-
"esbuild": "^0.12.9",
37+
"esbuild": "^0.12.12",
3838
"eslint": "^7.29.0",
3939
"eslint-config-prettier": "^8.3.0",
4040
"eslint-plugin-html": "^6.1.2",
@@ -46,22 +46,22 @@
4646
"execa": "^5.1.1",
4747
"fs-extra": "^10.0.0",
4848
"husky": "^6.0.0",
49-
"jest": "^27.0.5",
50-
"jest-environment-node": "^27.0.5",
49+
"jest": "^27.0.6",
50+
"jest-environment-node": "^27.0.6",
5151
"jest-junit": "^12.2.0",
5252
"lint-staged": "^11.0.0",
5353
"minimist": "^1.2.5",
5454
"node-fetch": "^2.6.1",
5555
"npm-check-updates": "^11.7.1",
5656
"npm-run-all": "^4.1.5",
57-
"playwright-core": "^1.12.2",
58-
"pnpm": "^6.8.0",
59-
"prettier": "^2.3.1",
57+
"playwright-core": "^1.12.3",
58+
"pnpm": "^6.9.1",
59+
"prettier": "^2.3.2",
6060
"prettier-plugin-svelte": "^2.3.1",
6161
"rimraf": "^3.0.2",
6262
"semver": "^7.3.5",
6363
"sirv": "^1.0.12",
64-
"svelte": "^3.38.2",
64+
"svelte": "^3.38.3",
6565
"ts-jest": "^27.0.3",
6666
"typescript": "^4.3.4",
6767
"vite": "^2.3.8"

packages/e2e-tests/autoprefixer-browerslist/package.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@
33
"private": true,
44
"version": "1.0.0",
55
"scripts": {
6+
"dev": "vite",
67
"build": "vite build",
7-
"dev": "vite"
8+
"preview": "vite preview"
9+
},
10+
"dependencies": {
11+
"e2e-tests-hmr-test-dependency": "workspace:*"
812
},
9-
"dependencies": {
10-
"e2e-tests-hmr-test-dependency": "workspace:*"
11-
},
1213
"devDependencies": {
1314
"@sveltejs/vite-plugin-svelte": "workspace:*",
1415
"autoprefixer": "^10.2.6",
1516
"postcss": "^8.3.5",
1617
"postcss-load-config": "^3.1.0",
17-
"svelte": "^3.38.2",
18+
"svelte": "^3.38.3",
1819
"svelte-hmr": "^0.14.4",
1920
"svelte-preprocess": "^4.7.3",
2021
"vite": "^2.3.8"
Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
const { svelte } = require('@sveltejs/vite-plugin-svelte');
22
const { defineConfig } = require('vite');
33

4-
module.exports = defineConfig(({ command, mode }) => {
5-
const isProduction = mode === 'production';
4+
module.exports = defineConfig(() => {
65
return {
76
plugins: [svelte()],
87
build: {
9-
minify: isProduction
8+
// make build faster by skipping transforms and minification
9+
target: 'esnext',
10+
minify: false
11+
},
12+
server: {
13+
watch: {
14+
// During tests we edit the files too fast and sometimes chokidar
15+
// misses change events, so enforce polling for consistency
16+
usePolling: true,
17+
interval: 100
18+
}
1019
}
1120
};
1221
});

packages/e2e-tests/configfile-custom/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33
"private": true,
44
"version": "1.0.0",
55
"scripts": {
6+
"dev": "vite",
67
"build": "vite build",
7-
"dev": "vite"
8+
"preview": "vite preview"
9+
},
10+
"dependencies": {
11+
"e2e-tests-hmr-test-dependency": "workspace:*"
812
},
9-
"dependencies": {
10-
"e2e-tests-hmr-test-dependency": "workspace:*"
11-
},
1213
"devDependencies": {
1314
"@sveltejs/vite-plugin-svelte": "workspace:*",
14-
"svelte": "^3.38.2",
15+
"svelte": "^3.38.3",
1516
"svelte-hmr": "^0.14.4",
16-
"svelte-preprocess": "^4.7.3",
1717
"vite": "^2.3.8"
1818
}
1919
}
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
const sveltePreprocess = require('svelte-preprocess');
2-
31
module.exports = {
4-
preprocess: sveltePreprocess()
2+
emitCss: false
53
};
Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
/*
2-
const sveltePreprocess = require('svelte-preprocess');
3-
4-
module.exports = {
5-
preprocess: sveltePreprocess()
6-
};
7-
*/
81
export default {
9-
emitCss: true
2+
emitCss: false
103
}
Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
const { svelte } = require('@sveltejs/vite-plugin-svelte');
22
const { defineConfig } = require('vite');
33

4-
module.exports = defineConfig(({ command, mode }) => {
5-
const isProduction = mode === 'production';
4+
module.exports = defineConfig(() => {
65
return {
76
plugins: [svelte({ configFile: 'svelte.config.custom.cjs' })],
87
build: {
9-
minify: isProduction
8+
// make build faster by skipping transforms and minification
9+
target: 'esnext',
10+
minify: false
11+
},
12+
server: {
13+
watch: {
14+
// During tests we edit the files too fast and sometimes chokidar
15+
// misses change events, so enforce polling for consistency
16+
usePolling: true,
17+
interval: 100
18+
}
1019
}
1120
};
1221
});

0 commit comments

Comments
 (0)