From ab44a00b1aa11b7a5ff6199614963a6708946424 Mon Sep 17 00:00:00 2001 From: Yoshito Komatsu Date: Thu, 6 Jan 2022 10:17:19 +0900 Subject: [PATCH 01/12] Improve an error message for MODULE_NOT_FOUND --- packages/kit/src/core/config/index.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/kit/src/core/config/index.js b/packages/kit/src/core/config/index.js index dcf18eefec8e..64ca357a173b 100644 --- a/packages/kit/src/core/config/index.js +++ b/packages/kit/src/core/config/index.js @@ -28,10 +28,13 @@ export function load_template(cwd, config) { } export async function load_config({ cwd = process.cwd() } = {}) { - const config_file_esm = path.join(cwd, 'svelte.config.js'); - const config_file = fs.existsSync(config_file_esm) - ? config_file_esm - : path.join(cwd, 'svelte.config.cjs'); + let config_file = path.join(cwd, 'svelte.config.js'); + const config_file_cjs = path.join(cwd, 'svelte.config.cjs'); + + if (!fs.existsSync(config_file) && fs.existsSync(config_file_cjs)) { + config_file = config_file_cjs; + } + const config = await import(url.pathToFileURL(config_file).href); const validated = validate_config(config.default); From c78894fc650f38dc75ce4c66825e3806af3a3851 Mon Sep 17 00:00:00 2001 From: Yoshito Komatsu Date: Thu, 6 Jan 2022 16:35:30 +0900 Subject: [PATCH 02/12] Add a changeset --- .changeset/neat-points-exercise.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/neat-points-exercise.md diff --git a/.changeset/neat-points-exercise.md b/.changeset/neat-points-exercise.md new file mode 100644 index 000000000000..7e2dc44696e2 --- /dev/null +++ b/.changeset/neat-points-exercise.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +Improve an error message for MODULE_NOT_FOUND From 01a59ad35aa70b1add268101fa087f8b540133fb Mon Sep 17 00:00:00 2001 From: Yoshito Komatsu Date: Thu, 6 Jan 2022 22:38:42 +0900 Subject: [PATCH 03/12] Update a changeset Co-authored-by: Bjorn Lu --- .changeset/neat-points-exercise.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/neat-points-exercise.md b/.changeset/neat-points-exercise.md index 7e2dc44696e2..60d24ea5c159 100644 --- a/.changeset/neat-points-exercise.md +++ b/.changeset/neat-points-exercise.md @@ -2,4 +2,4 @@ '@sveltejs/kit': patch --- -Improve an error message for MODULE_NOT_FOUND +Improve error message when a Svelte config is not found From b0ced2dac55d708e5231fd449ca4dffe7e3dbaec Mon Sep 17 00:00:00 2001 From: Yoshito Komatsu Date: Fri, 7 Jan 2022 10:16:40 +0900 Subject: [PATCH 04/12] Move some error messages --- packages/kit/src/cli.js | 27 ++++++++------------------- packages/kit/src/core/config/index.js | 17 +++++++++++++++-- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/packages/kit/src/cli.js b/packages/kit/src/cli.js index 3641406f225c..b1782775aa8c 100755 --- a/packages/kit/src/cli.js +++ b/packages/kit/src/cli.js @@ -5,17 +5,9 @@ import { relative } from 'path'; import * as ports from 'port-authority'; import { load_config } from './core/config/index.js'; import { networkInterfaces, release } from 'os'; -import { coalesce_to_error, has_error_code } from './utils/error.js'; +import { coalesce_to_error } from './utils/error.js'; async function get_config() { - // TODO this is temporary, for the benefit of early adopters - if (existsSync('svelte.config.cjs')) { - // prettier-ignore - console.error(colors.bold().red( - 'svelte.config.cjs should be renamed to svelte.config.js and converted to an ES module. See https://kit.svelte.dev/docs#configuration for an example' - )); - } - if (existsSync('vite.config.js')) { // prettier-ignore console.error(colors.bold().red( @@ -27,21 +19,18 @@ async function get_config() { return await load_config(); } catch (err) { const error = coalesce_to_error(err); - let message = error.message; - - if ( - has_error_code(error, 'MODULE_NOT_FOUND') && - /Cannot find module svelte\.config\./.test(error.message) - ) { - message = 'Missing svelte.config.js'; - } else if (error.name === 'SyntaxError') { - message = 'Malformed svelte.config.js'; + + if (error.name === 'SyntaxError') { + // prettier-ignore + console.error(colors.bold().red( + 'Malformed svelte.config.js' + )); } - console.error(colors.bold().red(message)); if (error.stack) { console.error(colors.grey(error.stack)); } + process.exit(1); } } diff --git a/packages/kit/src/core/config/index.js b/packages/kit/src/core/config/index.js index 64ca357a173b..01b4fa43d1ea 100644 --- a/packages/kit/src/core/config/index.js +++ b/packages/kit/src/core/config/index.js @@ -1,6 +1,7 @@ import fs from 'fs'; import path from 'path'; import * as url from 'url'; +import colors from 'kleur'; import { logger } from '../utils.js'; import options from './options.js'; @@ -31,8 +32,20 @@ export async function load_config({ cwd = process.cwd() } = {}) { let config_file = path.join(cwd, 'svelte.config.js'); const config_file_cjs = path.join(cwd, 'svelte.config.cjs'); - if (!fs.existsSync(config_file) && fs.existsSync(config_file_cjs)) { - config_file = config_file_cjs; + if (!fs.existsSync(config_file)) { + if (fs.existsSync(config_file_cjs)) { + // TODO this is temporary, for the benefit of early adopters + // prettier-ignore + console.error(colors.bold().red( + 'svelte.config.cjs should be renamed to svelte.config.js and converted to an ES module. See https://kit.svelte.dev/docs#configuration for an example' + )); + config_file = config_file_cjs; + } else { + // prettier-ignore + console.error(colors.bold().red( + 'You need to create a svelte.config.js file. See https://kit.svelte.dev/docs#configuration' + )); + } } const config = await import(url.pathToFileURL(config_file).href); From d0262d53cf47b49eb3ff438f656efdc6a809a03f Mon Sep 17 00:00:00 2001 From: Yoshito Komatsu Date: Fri, 7 Jan 2022 11:10:54 +0900 Subject: [PATCH 05/12] Move some error messages again --- packages/kit/src/cli.js | 16 ++++++++++++---- packages/kit/src/core/config/index.js | 11 ++--------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/packages/kit/src/cli.js b/packages/kit/src/cli.js index b1782775aa8c..35dbd71972cc 100755 --- a/packages/kit/src/cli.js +++ b/packages/kit/src/cli.js @@ -8,6 +8,14 @@ import { networkInterfaces, release } from 'os'; import { coalesce_to_error } from './utils/error.js'; async function get_config() { + if (existsSync('svelte.config.cjs')) { + // TODO this is temporary, for the benefit of early adopters + // prettier-ignore + console.error(colors.bold().red( + 'svelte.config.cjs should be renamed to svelte.config.js and converted to an ES module. See https://kit.svelte.dev/docs#configuration for an example' + )); + } + if (existsSync('vite.config.js')) { // prettier-ignore console.error(colors.bold().red( @@ -19,14 +27,14 @@ async function get_config() { return await load_config(); } catch (err) { const error = coalesce_to_error(err); + let message = error.message; if (error.name === 'SyntaxError') { - // prettier-ignore - console.error(colors.bold().red( - 'Malformed svelte.config.js' - )); + message = 'Malformed svelte.config.js'; } + console.error(colors.bold().red(message)); + if (error.stack) { console.error(colors.grey(error.stack)); } diff --git a/packages/kit/src/core/config/index.js b/packages/kit/src/core/config/index.js index 01b4fa43d1ea..891028320cf3 100644 --- a/packages/kit/src/core/config/index.js +++ b/packages/kit/src/core/config/index.js @@ -1,7 +1,6 @@ import fs from 'fs'; import path from 'path'; import * as url from 'url'; -import colors from 'kleur'; import { logger } from '../utils.js'; import options from './options.js'; @@ -34,17 +33,11 @@ export async function load_config({ cwd = process.cwd() } = {}) { if (!fs.existsSync(config_file)) { if (fs.existsSync(config_file_cjs)) { - // TODO this is temporary, for the benefit of early adopters - // prettier-ignore - console.error(colors.bold().red( - 'svelte.config.cjs should be renamed to svelte.config.js and converted to an ES module. See https://kit.svelte.dev/docs#configuration for an example' - )); config_file = config_file_cjs; } else { - // prettier-ignore - console.error(colors.bold().red( + throw new Error( 'You need to create a svelte.config.js file. See https://kit.svelte.dev/docs#configuration' - )); + ); } } From dba64648887be78c1ee5eaa3a971e735ca62123f Mon Sep 17 00:00:00 2001 From: Yoshito Komatsu Date: Fri, 7 Jan 2022 11:15:54 +0900 Subject: [PATCH 06/12] Update --- packages/kit/src/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/cli.js b/packages/kit/src/cli.js index 35dbd71972cc..fa639916f1c8 100755 --- a/packages/kit/src/cli.js +++ b/packages/kit/src/cli.js @@ -8,8 +8,8 @@ import { networkInterfaces, release } from 'os'; import { coalesce_to_error } from './utils/error.js'; async function get_config() { + // TODO this is temporary, for the benefit of early adopters if (existsSync('svelte.config.cjs')) { - // TODO this is temporary, for the benefit of early adopters // prettier-ignore console.error(colors.bold().red( 'svelte.config.cjs should be renamed to svelte.config.js and converted to an ES module. See https://kit.svelte.dev/docs#configuration for an example' From e6119120b5d9f7b5e62a313f4354c684648e86b2 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 6 Jan 2022 21:22:49 -0500 Subject: [PATCH 07/12] remove support for svelte.config.cjs --- packages/kit/package.json | 1 + packages/kit/src/core/config/index.js | 20 +++++------------ .../fixtures/default-cjs/svelte.config.cjs | 0 .../{default-esm => default}/svelte.config.js | 0 packages/kit/src/core/config/test/index.js | 22 +++++-------------- .../test/fixtures/resolve-alias/package.json | 3 ++- .../fixtures/resolve-alias/svelte.config.cjs | 5 ----- .../fixtures/resolve-alias/svelte.config.js | 5 +++++ .../test/fixtures/typescript/package.json | 3 ++- .../fixtures/typescript/svelte.config.cjs | 5 ----- .../test/fixtures/typescript/svelte.config.js | 5 +++++ pnpm-lock.yaml | 2 ++ 12 files changed, 28 insertions(+), 43 deletions(-) delete mode 100644 packages/kit/src/core/config/test/fixtures/default-cjs/svelte.config.cjs rename packages/kit/src/core/config/test/fixtures/{default-esm => default}/svelte.config.js (100%) delete mode 100644 packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.cjs create mode 100644 packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.js delete mode 100644 packages/kit/src/packaging/test/fixtures/typescript/svelte.config.cjs create mode 100644 packages/kit/src/packaging/test/fixtures/typescript/svelte.config.js diff --git a/packages/kit/package.json b/packages/kit/package.json index fd45b73462d7..db5d2aa23e4c 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -39,6 +39,7 @@ "sirv": "^1.0.19", "svelte": "^3.44.2", "svelte-check": "^2.2.10", + "svelte-preprocess": "^4.9.8", "svelte2tsx": "~0.4.10", "tiny-glob": "^0.2.9", "uvu": "^0.5.2" diff --git a/packages/kit/src/core/config/index.js b/packages/kit/src/core/config/index.js index 01b4fa43d1ea..72f48e555a32 100644 --- a/packages/kit/src/core/config/index.js +++ b/packages/kit/src/core/config/index.js @@ -29,23 +29,13 @@ export function load_template(cwd, config) { } export async function load_config({ cwd = process.cwd() } = {}) { - let config_file = path.join(cwd, 'svelte.config.js'); - const config_file_cjs = path.join(cwd, 'svelte.config.cjs'); + const config_file = path.join(cwd, 'svelte.config.js'); if (!fs.existsSync(config_file)) { - if (fs.existsSync(config_file_cjs)) { - // TODO this is temporary, for the benefit of early adopters - // prettier-ignore - console.error(colors.bold().red( - 'svelte.config.cjs should be renamed to svelte.config.js and converted to an ES module. See https://kit.svelte.dev/docs#configuration for an example' - )); - config_file = config_file_cjs; - } else { - // prettier-ignore - console.error(colors.bold().red( - 'You need to create a svelte.config.js file. See https://kit.svelte.dev/docs#configuration' - )); - } + // prettier-ignore + console.error(colors.bold().red( + 'You need to create a svelte.config.js file. See https://kit.svelte.dev/docs#configuration' + )); } const config = await import(url.pathToFileURL(config_file).href); diff --git a/packages/kit/src/core/config/test/fixtures/default-cjs/svelte.config.cjs b/packages/kit/src/core/config/test/fixtures/default-cjs/svelte.config.cjs deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/kit/src/core/config/test/fixtures/default-esm/svelte.config.js b/packages/kit/src/core/config/test/fixtures/default/svelte.config.js similarity index 100% rename from packages/kit/src/core/config/test/fixtures/default-esm/svelte.config.js rename to packages/kit/src/core/config/test/fixtures/default/svelte.config.js diff --git a/packages/kit/src/core/config/test/index.js b/packages/kit/src/core/config/test/index.js index 79ecf067dd38..f88b579e37b9 100644 --- a/packages/kit/src/core/config/test/index.js +++ b/packages/kit/src/core/config/test/index.js @@ -10,11 +10,8 @@ import { load_config } from '../index.js'; const __filename = fileURLToPath(import.meta.url); const __dirname = join(__filename, '..'); -/** - * @param {string} path - */ -async function testLoadDefaultConfig(path) { - const cwd = join(__dirname, 'fixtures', path); +test('load default config (esm)', async () => { + const cwd = join(__dirname, 'fixtures/default'); const config = await load_config({ cwd }); remove_keys(config, ([, v]) => typeof v === 'function'); @@ -64,27 +61,20 @@ async function testLoadDefaultConfig(path) { trailingSlash: 'never' } }); -} - -test('load default config (cjs)', async () => { - await testLoadDefaultConfig('default-cjs'); -}); - -test('load default config (esm)', async () => { - await testLoadDefaultConfig('default-esm'); }); test('errors on loading config with incorrect default export', async () => { - let errorMessage = null; + let message = null; + try { const cwd = join(__dirname, 'fixtures', 'export-string'); await load_config({ cwd }); } catch (/** @type {any} */ e) { - errorMessage = e.message; + message = e.message; } assert.equal( - errorMessage, + message, 'Unexpected config type "string", make sure your default export is an object.' ); }); diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/package.json b/packages/kit/src/packaging/test/fixtures/resolve-alias/package.json index 65358d9a9a8a..eec695b67186 100644 --- a/packages/kit/src/packaging/test/fixtures/resolve-alias/package.json +++ b/packages/kit/src/packaging/test/fixtures/resolve-alias/package.json @@ -1,5 +1,6 @@ { "name": "resolve-alias", "version": "1.0.0", - "description": "package using $lib alias" + "description": "package using $lib alias", + "type": "module" } diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.cjs b/packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.cjs deleted file mode 100644 index d0526bbb674d..000000000000 --- a/packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.cjs +++ /dev/null @@ -1,5 +0,0 @@ -const preprocess = require('svelte-preprocess'); - -module.exports = { - preprocess: preprocess() -}; diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.js b/packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.js new file mode 100644 index 000000000000..6bd253bdf27d --- /dev/null +++ b/packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.js @@ -0,0 +1,5 @@ +import preprocess from 'svelte-preprocess'; + +export default { + preprocess: preprocess() +}; diff --git a/packages/kit/src/packaging/test/fixtures/typescript/package.json b/packages/kit/src/packaging/test/fixtures/typescript/package.json index 3ead797272b4..a2feaf4d4644 100644 --- a/packages/kit/src/packaging/test/fixtures/typescript/package.json +++ b/packages/kit/src/packaging/test/fixtures/typescript/package.json @@ -1,5 +1,6 @@ { "name": "typescript", "version": "1.0.0", - "description": "standard typescript package" + "description": "standard typescript package", + "type": "module" } diff --git a/packages/kit/src/packaging/test/fixtures/typescript/svelte.config.cjs b/packages/kit/src/packaging/test/fixtures/typescript/svelte.config.cjs deleted file mode 100644 index d0526bbb674d..000000000000 --- a/packages/kit/src/packaging/test/fixtures/typescript/svelte.config.cjs +++ /dev/null @@ -1,5 +0,0 @@ -const preprocess = require('svelte-preprocess'); - -module.exports = { - preprocess: preprocess() -}; diff --git a/packages/kit/src/packaging/test/fixtures/typescript/svelte.config.js b/packages/kit/src/packaging/test/fixtures/typescript/svelte.config.js new file mode 100644 index 000000000000..6bd253bdf27d --- /dev/null +++ b/packages/kit/src/packaging/test/fixtures/typescript/svelte.config.js @@ -0,0 +1,5 @@ +import preprocess from 'svelte-preprocess'; + +export default { + preprocess: preprocess() +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cfb681c77a3..ef6f28a39632 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -256,6 +256,7 @@ importers: sirv: ^1.0.19 svelte: ^3.44.2 svelte-check: ^2.2.10 + svelte-preprocess: ^4.9.8 svelte2tsx: ~0.4.10 tiny-glob: ^0.2.9 uvu: ^0.5.2 @@ -289,6 +290,7 @@ importers: sirv: 1.0.19 svelte: 3.44.2 svelte-check: 2.2.10_svelte@3.44.2 + svelte-preprocess: 4.9.8_svelte@3.44.2+typescript@4.4.4 svelte2tsx: 0.4.10_svelte@3.44.2+typescript@4.4.4 tiny-glob: 0.2.9 uvu: 0.5.2 From 07782c91023f527116afa20a8d49dbfff078fb5d Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 6 Jan 2022 21:25:18 -0500 Subject: [PATCH 08/12] tweak changeset --- .changeset/neat-points-exercise.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/neat-points-exercise.md b/.changeset/neat-points-exercise.md index 60d24ea5c159..ebfb2f95bc5d 100644 --- a/.changeset/neat-points-exercise.md +++ b/.changeset/neat-points-exercise.md @@ -2,4 +2,4 @@ '@sveltejs/kit': patch --- -Improve error message when a Svelte config is not found +Improve error message when svelte.config.js is not found From f248a48baf1fa21f9a08c7f830dfe6a93c7c2512 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 6 Jan 2022 21:45:25 -0500 Subject: [PATCH 09/12] simplify config error handling --- packages/kit/src/cli.js | 76 ++++++++++++----------------------------- 1 file changed, 22 insertions(+), 54 deletions(-) diff --git a/packages/kit/src/cli.js b/packages/kit/src/cli.js index fa639916f1c8..ea0f0c8ea7dc 100755 --- a/packages/kit/src/cli.js +++ b/packages/kit/src/cli.js @@ -7,49 +7,17 @@ import { load_config } from './core/config/index.js'; import { networkInterfaces, release } from 'os'; import { coalesce_to_error } from './utils/error.js'; -async function get_config() { - // TODO this is temporary, for the benefit of early adopters - if (existsSync('svelte.config.cjs')) { - // prettier-ignore - console.error(colors.bold().red( - 'svelte.config.cjs should be renamed to svelte.config.js and converted to an ES module. See https://kit.svelte.dev/docs#configuration for an example' - )); - } - - if (existsSync('vite.config.js')) { - // prettier-ignore - console.error(colors.bold().red( - 'Please remove vite.config.js and put Vite config in svelte.config.js: https://kit.svelte.dev/docs#configuration-vite' - )); - } +/** @param {unknown} e */ +function handle_error(e) { + const error = coalesce_to_error(e); - try { - return await load_config(); - } catch (err) { - const error = coalesce_to_error(err); - let message = error.message; - - if (error.name === 'SyntaxError') { - message = 'Malformed svelte.config.js'; - } - - console.error(colors.bold().red(message)); - - if (error.stack) { - console.error(colors.grey(error.stack)); - } + if (error.name === 'SyntaxError') throw error; - process.exit(1); + console.log(colors.bold().red(`> ${error.message}`)); + if (error.stack) { + console.log(colors.gray(error.stack.split('\n').slice(1).join('\n'))); } -} -/** @param {unknown} error */ -function handle_error(error) { - const err = coalesce_to_error(error); - console.log(colors.bold().red(`> ${err.message}`)); - if (err.stack) { - console.log(colors.gray(err.stack)); - } process.exit(1); } @@ -82,12 +50,12 @@ prog .option('-H, --https', 'Use self-signed HTTPS certificate') .option('-o, --open', 'Open a browser tab') .action(async ({ port, host, https, open }) => { - process.env.NODE_ENV = process.env.NODE_ENV || 'development'; - const config = await get_config(); + try { + process.env.NODE_ENV = process.env.NODE_ENV || 'development'; + const config = await load_config(); - const { dev } = await import('./core/dev/index.js'); + const { dev } = await import('./core/dev/index.js'); - try { const cwd = process.cwd(); const { address_info, server_config } = await dev({ @@ -117,10 +85,10 @@ prog .describe('Create a production build of your app') .option('--verbose', 'Log more stuff', false) .action(async ({ verbose }) => { - process.env.NODE_ENV = process.env.NODE_ENV || 'production'; - const config = await get_config(); - try { + process.env.NODE_ENV = process.env.NODE_ENV || 'production'; + const config = await load_config(); + const { build } = await import('./core/build/index.js'); const build_data = await build(config); @@ -155,14 +123,14 @@ prog .option('-H, --https', 'Use self-signed HTTPS certificate', false) .option('-o, --open', 'Open a browser tab', false) .action(async ({ port, host, https, open }) => { - await check_port(port); + try { + await check_port(port); - process.env.NODE_ENV = process.env.NODE_ENV || 'production'; - const config = await get_config(); + process.env.NODE_ENV = process.env.NODE_ENV || 'production'; + const config = await load_config(); - const { preview } = await import('./core/preview/index.js'); + const { preview } = await import('./core/preview/index.js'); - try { await preview({ port, host, config, https }); welcome({ port, host, https, open }); @@ -176,11 +144,11 @@ prog .describe('Create a package') .option('-d, --dir', 'Destination directory', 'package') .action(async () => { - const config = await get_config(); + try { + const config = await load_config(); - const { make_package } = await import('./packaging/index.js'); + const { make_package } = await import('./packaging/index.js'); - try { await make_package(config); } catch (error) { handle_error(error); From 661a55cf7e997af836d4432c5323941bf438c629 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 6 Jan 2022 21:48:18 -0500 Subject: [PATCH 10/12] simplify further --- packages/kit/src/core/config/index.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/packages/kit/src/core/config/index.js b/packages/kit/src/core/config/index.js index 7453d22398cb..69c75233627e 100644 --- a/packages/kit/src/core/config/index.js +++ b/packages/kit/src/core/config/index.js @@ -55,17 +55,9 @@ export async function load_config({ cwd = process.cwd() } = {}) { * @returns {import('types/config').ValidatedConfig} */ export function validate_config(config) { - const type = typeof config; - - if (type === 'undefined') { - throw new Error( - 'Your config is missing default exports. Make sure to include "export default config;"' - ); - } - - if (type !== 'object') { + if (typeof config !== 'object') { throw new Error( - `Unexpected config type "${type}", make sure your default export is an object.` + `svelte.config.js must have a configuration object as its default export. See https://kit.svelte.dev/docs#configuration` ); } From 947f08e5ff5c10f8d7b42d31694cc435c2752bb6 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 6 Jan 2022 21:52:09 -0500 Subject: [PATCH 11/12] lint --- packages/kit/src/cli.js | 1 - packages/kit/src/core/config/index.js | 2 +- packages/kit/test/apps/basics/test/test.js | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/kit/src/cli.js b/packages/kit/src/cli.js index ea0f0c8ea7dc..075731d62c29 100755 --- a/packages/kit/src/cli.js +++ b/packages/kit/src/cli.js @@ -1,4 +1,3 @@ -import { existsSync } from 'fs'; import sade from 'sade'; import colors from 'kleur'; import { relative } from 'path'; diff --git a/packages/kit/src/core/config/index.js b/packages/kit/src/core/config/index.js index 69c75233627e..98e98158153e 100644 --- a/packages/kit/src/core/config/index.js +++ b/packages/kit/src/core/config/index.js @@ -57,7 +57,7 @@ export async function load_config({ cwd = process.cwd() } = {}) { export function validate_config(config) { if (typeof config !== 'object') { throw new Error( - `svelte.config.js must have a configuration object as its default export. See https://kit.svelte.dev/docs#configuration` + 'svelte.config.js must have a configuration object as its default export. See https://kit.svelte.dev/docs#configuration' ); } diff --git a/packages/kit/test/apps/basics/test/test.js b/packages/kit/test/apps/basics/test/test.js index efe185266d54..be172fc820e9 100644 --- a/packages/kit/test/apps/basics/test/test.js +++ b/packages/kit/test/apps/basics/test/test.js @@ -3,9 +3,8 @@ import path from 'path'; import http from 'http'; import * as ports from 'port-authority'; import { expect } from '@playwright/test'; -import { test } from '../../../utils.js'; +import { start_server, test } from '../../../utils.js'; import { fileURLToPath } from 'url'; -import { start_server } from '../../../utils.js'; /** @typedef {import('@playwright/test').Response} Response */ From b70a1184ca4891982948821453774b791d8f878d Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 6 Jan 2022 22:02:06 -0500 Subject: [PATCH 12/12] update test --- packages/kit/src/core/config/test/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/core/config/test/index.js b/packages/kit/src/core/config/test/index.js index f88b579e37b9..4b5a96d408e5 100644 --- a/packages/kit/src/core/config/test/index.js +++ b/packages/kit/src/core/config/test/index.js @@ -75,7 +75,7 @@ test('errors on loading config with incorrect default export', async () => { assert.equal( message, - 'Unexpected config type "string", make sure your default export is an object.' + 'svelte.config.js must have a configuration object as its default export. See https://kit.svelte.dev/docs#configuration' ); });