diff --git a/packages/commonjs/src/index.js b/packages/commonjs/src/index.js index 2488be177..cc89e0793 100644 --- a/packages/commonjs/src/index.js +++ b/packages/commonjs/src/index.js @@ -188,8 +188,9 @@ export default function commonjs(options = {}) { }, transform(code, id) { - if (id !== DYNAMIC_PACKAGES_ID && !id.startsWith(DYNAMIC_JSON_PREFIX)) { - if (!filter(id) || extensions.indexOf(extname(id)) === -1) { + const extName = extname(id); + if (extName !== '.cjs' && id !== DYNAMIC_PACKAGES_ID && !id.startsWith(DYNAMIC_JSON_PREFIX)) { + if (!filter(id) || !extensions.includes(extName)) { setIsCjsPromise(id, null); return null; } diff --git a/packages/commonjs/test/fixtures/samples/cjs-extension/export.cjs b/packages/commonjs/test/fixtures/samples/cjs-extension/export.cjs new file mode 100644 index 000000000..da5a25ef5 --- /dev/null +++ b/packages/commonjs/test/fixtures/samples/cjs-extension/export.cjs @@ -0,0 +1,3 @@ +module.exports = { + test: 42 +}; \ No newline at end of file diff --git a/packages/commonjs/test/fixtures/samples/cjs-extension/main.js b/packages/commonjs/test/fixtures/samples/cjs-extension/main.js new file mode 100644 index 000000000..b76e19952 --- /dev/null +++ b/packages/commonjs/test/fixtures/samples/cjs-extension/main.js @@ -0,0 +1,3 @@ +const { test } = require('./export.cjs'); + +console.log(test); diff --git a/packages/commonjs/test/snapshots/test.js.md b/packages/commonjs/test/snapshots/test.js.md index 9bdbbcefc..e77b5ee38 100644 --- a/packages/commonjs/test/snapshots/test.js.md +++ b/packages/commonjs/test/snapshots/test.js.md @@ -21,3 +21,24 @@ Generated by [AVA](https://avajs.dev). ␊ module.exports = main;␊ ` + +## imports .cjs file extension by default + +> Snapshot 1 + + `'use strict';␊ + ␊ + var _export = {␊ + test: 42␊ + };␊ + ␊ + const { test } = _export;␊ + ␊ + console.log(test);␊ + ␊ + var main = {␊ + ␊ + };␊ + ␊ + module.exports = main;␊ + ` diff --git a/packages/commonjs/test/snapshots/test.js.snap b/packages/commonjs/test/snapshots/test.js.snap index c5a7c06c8..b65007f26 100644 Binary files a/packages/commonjs/test/snapshots/test.js.snap and b/packages/commonjs/test/snapshots/test.js.snap differ diff --git a/packages/commonjs/test/test.js b/packages/commonjs/test/test.js index 53a6289db..120875d87 100644 --- a/packages/commonjs/test/test.js +++ b/packages/commonjs/test/test.js @@ -639,3 +639,12 @@ test('logs a warning when the deprecated namedExports option is used', async (t) 'The namedExports option from "@rollup/plugin-commonjs" is deprecated. Named exports are now handled automatically.' ); }); + +test('imports .cjs file extension by default', async (t) => { + const bundle = await rollup({ + input: 'fixtures/samples/cjs-extension/main.js', + plugins: [commonjs()] + }); + const code = await getCodeFromBundle(bundle); + t.snapshot(code); +});