diff --git a/docs/assets/init-demo.gif b/docs/assets/init-demo.gif index 353c8b73..03dc2acf 100644 Binary files a/docs/assets/init-demo.gif and b/docs/assets/init-demo.gif differ diff --git a/packages/wxt/e2e/tests/user-config.test.ts b/packages/wxt/e2e/tests/user-config.test.ts index c0b49750..b120bf87 100644 --- a/packages/wxt/e2e/tests/user-config.test.ts +++ b/packages/wxt/e2e/tests/user-config.test.ts @@ -157,4 +157,18 @@ describe('User Config', () => { await project.fileExists('.output/test-chrome-mv3-development-dev-build'), ).toBe(true); }); + + it('should throw error when config file not exist', async () => { + const project = new TestProject(); + project.addFile( + 'src/entrypoints/background.ts', + `export default defineBackground( + () => console.log('Hello background'), + );`, + ); + + await expect( + project.build({ configFile: 'foo.config.ts' }), + ).rejects.toThrowError(/not found/); + }); }); diff --git a/packages/wxt/src/core/resolve-config.ts b/packages/wxt/src/core/resolve-config.ts index dc93a319..cb6f40cb 100644 --- a/packages/wxt/src/core/resolve-config.ts +++ b/packages/wxt/src/core/resolve-config.ts @@ -53,6 +53,9 @@ export async function resolveConfig( esmResolve: true, }, }); + if (inlineConfig.configFile && metadata.layers?.length === 0) { + throw Error(`Config file "${inlineConfig.configFile}" not found`); + } userConfig = loadedConfig ?? {}; userConfigMetadata = metadata; }