diff --git a/packages/registry/__tests__/addon-registry.test.js b/packages/registry/__tests__/addon-registry.test.js index ca959d7c4e3..1f58d251e8a 100644 --- a/packages/registry/__tests__/addon-registry.test.js +++ b/packages/registry/__tests__/addon-registry.test.js @@ -230,6 +230,9 @@ describe('AddonRegistry - Project', () => { '@plone/volto/LanguageSwitcher': `${base}/src/customizations/LanguageSwitcher.js`, '@plone/volto/TSComponent': `${base}/src/customizations/TSComponent.jsx`, '@plone/volto/client': `${base}/src/customizations/client.js`, + // .cjs is shadowable, and the alias key keeps its extension because + // such modules are imported with it. See #8366. + '@plone/volto/constants/Languages.cjs': `${base}/src/customizations/constants/Languages.cjs`, '@plone/volto/routes': `${base}/src/customizations/routes.tsx`, 'test-addon/testaddon': `${base}/src/custom-addons/test-addon/testaddon.js`, '@plone/volto/server': `${base}/src/customizations/server.jsx`, diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/constants/Languages.cjs b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/constants/Languages.cjs new file mode 100644 index 00000000000..b4234b4bfdc --- /dev/null +++ b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/constants/Languages.cjs @@ -0,0 +1 @@ +module.exports = { en: 'English' }; diff --git a/packages/registry/__tests__/fixtures/test-volto-project/src/customizations/constants/Languages.cjs b/packages/registry/__tests__/fixtures/test-volto-project/src/customizations/constants/Languages.cjs new file mode 100644 index 00000000000..fa2ddf64805 --- /dev/null +++ b/packages/registry/__tests__/fixtures/test-volto-project/src/customizations/constants/Languages.cjs @@ -0,0 +1 @@ +module.exports = { en: 'English', sv: 'Svenska' }; diff --git a/packages/registry/news/8366.bugfix b/packages/registry/news/8366.bugfix new file mode 100644 index 00000000000..b8031d07265 --- /dev/null +++ b/packages/registry/news/8366.bugfix @@ -0,0 +1 @@ +Include `.cjs` and `.mjs` in the customizations glob so core modules with those extensions can be shadowed. @kunalKumar-13 diff --git a/packages/registry/src/addon-registry/addon-registry.ts b/packages/registry/src/addon-registry/addon-registry.ts index c5cd1a241ad..29db2ea4244 100644 --- a/packages/registry/src/addon-registry/addon-registry.ts +++ b/packages/registry/src/addon-registry/addon-registry.ts @@ -743,7 +743,7 @@ class AddonRegistry { reg.forEach(({ customPath, name, sourcePath }) => { glob( - `${customPath}/**/*.*(svg|png|jpg|jpeg|gif|ico|less|js|jsx|ts|tsx)`, + `${customPath}/**/*.*(svg|png|jpg|jpeg|gif|ico|less|js|jsx|ts|tsx|cjs|mjs)`, ).map((filename) => { function changeFileExtension(filePath: string) { // Extract the current file extension