diff --git a/packages/config/src/options.js b/packages/config/src/options.js index b2e6bea3a9..3e064d20c6 100644 --- a/packages/config/src/options.js +++ b/packages/config/src/options.js @@ -237,7 +237,11 @@ export function getNuxtConfig(_options) { // Apply mode preset const modePreset = options.modes[options.mode || 'universal'] - defaultsDeep(options, modePreset) + + if (!modePreset) { + consola.warn(`Unknown mode: ${options.mode}. Falling back to universal`) + } + defaultsDeep(options, modePreset || options.modes.universal) if (options.modern === true) { options.modern = 'server' diff --git a/test/fixtures/with-config/nuxt.config.js b/test/fixtures/with-config/nuxt.config.js index f90a89e542..48ccb1e152 100644 --- a/test/fixtures/with-config/nuxt.config.js +++ b/test/fixtures/with-config/nuxt.config.js @@ -2,6 +2,7 @@ import path from 'path' import compression from 'compression' export default { + mode: 'unknown', srcDir: __dirname, server: { port: 8000, diff --git a/test/fixtures/with-config/with-config.test.js b/test/fixtures/with-config/with-config.test.js index c3f1b20bb2..6d1b6da61c 100644 --- a/test/fixtures/with-config/with-config.test.js +++ b/test/fixtures/with-config/with-config.test.js @@ -14,9 +14,12 @@ const hooks = [ describe('with-config', () => { buildFixture('with-config', () => { - expect(consola.warn).toHaveBeenCalledTimes(3) + expect(consola.warn).toHaveBeenCalledTimes(4) expect(consola.fatal).toHaveBeenCalledTimes(0) expect(consola.warn.mock.calls).toMatchObject([ + [ + 'Unknown mode: unknown. Falling back to universal' + ], [{ message: 'Found 2 plugins that match the configuration, suggest to specify extension:', additional: expect.stringContaining('plugins/test.json')