diff --git a/packages/webpack-cli/lib/groups/ConfigGroup.js b/packages/webpack-cli/lib/groups/ConfigGroup.js index f9c86bc67fe..ed22885fce9 100644 --- a/packages/webpack-cli/lib/groups/ConfigGroup.js +++ b/packages/webpack-cli/lib/groups/ConfigGroup.js @@ -31,7 +31,8 @@ const modeAlias = { const getDefaultConfigFiles = () => { return DEFAULT_CONFIG_LOC.map((filename) => { - return Object.keys(extensions).map((ext) => { + // Since .cjs is not available on interpret side add it manually to default config extension list + return [...Object.keys(extensions), '.cjs'].map((ext) => { return { path: resolve(filename + ext), ext: ext, diff --git a/test/zero-config/with-config/zero-config-entry.test.js b/test/config/defaults/basic-config/default-js-config.test.js similarity index 77% rename from test/zero-config/with-config/zero-config-entry.test.js rename to test/config/defaults/basic-config/default-js-config.test.js index 82d1c2abc0d..785a6e02078 100644 --- a/test/zero-config/with-config/zero-config-entry.test.js +++ b/test/config/defaults/basic-config/default-js-config.test.js @@ -1,10 +1,10 @@ const fs = require('fs'); const path = require('path'); -const { run } = require('../../utils/test-utils'); +const { run } = require('../../../utils/test-utils'); describe('Zero Config', () => { it('runs when config is present but not supplied via flag', () => { - const { stdout, stderr } = run(__dirname, [], false); + const { stdout, stderr, exitCode } = run(__dirname, [], false); // default entry should be used expect(stdout).toContain('./index.js'); // should pick up the output path from config @@ -13,6 +13,8 @@ describe('Zero Config', () => { expect(stdout).toContain('Version'); expect(stdout).toContain('Built at'); expect(stdout).toContain('Time'); + // Should return the correct exit code + expect(exitCode).toEqual(0); // check that the output file exists expect(fs.existsSync(path.join(__dirname, '/dist/test-output.js'))).toBeTruthy(); expect(stderr).toBeFalsy(); diff --git a/test/zero-config/with-config/index.js b/test/config/defaults/basic-config/index.js similarity index 100% rename from test/zero-config/with-config/index.js rename to test/config/defaults/basic-config/index.js diff --git a/test/zero-config/with-config/webpack.config.js b/test/config/defaults/basic-config/webpack.config.js similarity index 100% rename from test/zero-config/with-config/webpack.config.js rename to test/config/defaults/basic-config/webpack.config.js diff --git a/test/config/defaults/cjs-config/default-cjs-config.test.js b/test/config/defaults/cjs-config/default-cjs-config.test.js new file mode 100644 index 00000000000..0adda400566 --- /dev/null +++ b/test/config/defaults/cjs-config/default-cjs-config.test.js @@ -0,0 +1,22 @@ +const fs = require('fs'); +const path = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('Default Config:', () => { + it('Should be able to pick cjs config by default', () => { + const { stdout, stderr, exitCode } = run(__dirname, [], false); + // default entry should be used + expect(stdout).toContain('./index.js'); + // should pick up the output path from config + expect(stdout).toContain('Entrypoint main = test-output'); + expect(stdout).toContain('Hash'); + expect(stdout).toContain('Version'); + expect(stdout).toContain('Built at'); + expect(stdout).toContain('Time'); + // Should return the correct exit code + expect(exitCode).toEqual(0); + // check that the output file exists + expect(fs.existsSync(path.join(__dirname, '/dist/test-output.js'))).toBeTruthy(); + expect(stderr).toBeFalsy(); + }); +}); diff --git a/test/config/defaults/cjs-config/index.js b/test/config/defaults/cjs-config/index.js new file mode 100644 index 00000000000..278b015b7f7 --- /dev/null +++ b/test/config/defaults/cjs-config/index.js @@ -0,0 +1 @@ +console.log("Jotaro Kujo") diff --git a/test/config/defaults/cjs-config/webpack.config.cjs b/test/config/defaults/cjs-config/webpack.config.cjs new file mode 100644 index 00000000000..6593a7a44a3 --- /dev/null +++ b/test/config/defaults/cjs-config/webpack.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + mode: 'development', + output: { + filename: 'test-output.js', + }, +};