diff --git a/packages/registry/__tests__/addon-registry.test.js b/packages/registry/__tests__/addon-registry.test.js index b4b192e74c7..a85e20945db 100644 --- a/packages/registry/__tests__/addon-registry.test.js +++ b/packages/registry/__tests__/addon-registry.test.js @@ -227,6 +227,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 36c1d80e0a1..30a3c80754b 100644 --- a/packages/registry/src/addon-registry/addon-registry.ts +++ b/packages/registry/src/addon-registry/addon-registry.ts @@ -684,7 +684,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