From 85761d0f722085cbf7c1e1fb21d8d1f3fd276919 Mon Sep 17 00:00:00 2001 From: Victor Fernandez de Alba Date: Mon, 18 Mar 2024 20:40:47 +0100 Subject: [PATCH 1/5] Cross-package manager Volto path resolver in webpack-relative-resolver --- .../volto/webpack-plugins/webpack-relative-resolver.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/volto/webpack-plugins/webpack-relative-resolver.js b/packages/volto/webpack-plugins/webpack-relative-resolver.js index 4099305fa3..b292e82e89 100644 --- a/packages/volto/webpack-plugins/webpack-relative-resolver.js +++ b/packages/volto/webpack-plugins/webpack-relative-resolver.js @@ -5,8 +5,13 @@ class RelativeResolverPlugin { this.source = source || 'resolve'; this.target = target || 'resolve'; this.registry = registry; + this.voltoModulePath = require + .resolve('@plone/volto') + .split('/') + .slice(0, -1) + .join('/'); this.voltoPaths = Object.assign( - { '@plone/volto/': `${registry.voltoPath}/src` }, + { '@plone/volto/': this.voltoModulePath }, ...Object.keys(registry.packages).map((k) => ({ [k]: registry.packages[k].modulePath, })), From 97ddafb86a460f725aed2e7eee4b4f1106259f12 Mon Sep 17 00:00:00 2001 From: Victor Fernandez de Alba Date: Mon, 18 Mar 2024 20:41:30 +0100 Subject: [PATCH 2/5] Changelog --- packages/volto/news/5893.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/volto/news/5893.bugfix diff --git a/packages/volto/news/5893.bugfix b/packages/volto/news/5893.bugfix new file mode 100644 index 0000000000..ece8b0dd9a --- /dev/null +++ b/packages/volto/news/5893.bugfix @@ -0,0 +1 @@ +Cross-package manager Volto path resolver in `webpack-relative-resolver` @sneridagh From eb3879682f23a70e74ba2e6c4dc3378c0dc70479 Mon Sep 17 00:00:00 2001 From: Victor Fernandez de Alba Date: Mon, 18 Mar 2024 23:15:33 +0100 Subject: [PATCH 3/5] Fix unit tests --- packages/volto/__tests__/webpack-relative-resolver.test.js | 3 ++- packages/volto/package.json | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/volto/__tests__/webpack-relative-resolver.test.js b/packages/volto/__tests__/webpack-relative-resolver.test.js index 729b197f55..b7fcd88393 100644 --- a/packages/volto/__tests__/webpack-relative-resolver.test.js +++ b/packages/volto/__tests__/webpack-relative-resolver.test.js @@ -79,8 +79,9 @@ describe('WebpackRelativeResolver', () => { it('handles "installed Volto" resolve requests', () => { const registry = makeRegistry(); - registry.voltoPath = '/myvoltoproject/node_modules/@plone/volto'; const resolver = new WebpackRelativeResolver(registry); + resolver.voltoPaths['@plone/volto/'] = + '/myvoltoproject/node_modules/@plone/volto/src'; const req = makeInstalledVoltoRequest(); const resolvePath = resolver.getResolvePath(req); diff --git a/packages/volto/package.json b/packages/volto/package.json index 235210d079..a275c7ccfd 100644 --- a/packages/volto/package.json +++ b/packages/volto/package.json @@ -87,6 +87,7 @@ "@plone/volto-slate/(.*)$": "/../volto-slate/src/$1", "@plone/registry": "/../registry/src", "@plone/registry/(.*)$": "/../registry/src/$1", + "@plone/volto": "/src/index.js", "~/config": "/src/config", "~/../locales/${lang}.json": "/locales/en.json", "(.*)/locales/(.*)": "/locales/$2", From 1cd791d2d761d5a4a4a44871c4f62ea5c9e937d4 Mon Sep 17 00:00:00 2001 From: Victor Fernandez de Alba Date: Mon, 18 Mar 2024 23:26:21 +0100 Subject: [PATCH 4/5] Fix tests 2 --- packages/registry/src/addon-registry.js | 1 + .../volto/__tests__/webpack-relative-resolver.test.js | 1 + .../volto/webpack-plugins/webpack-relative-resolver.js | 8 +++----- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/registry/src/addon-registry.js b/packages/registry/src/addon-registry.js index 61980f9928..8d0d9b3d17 100644 --- a/packages/registry/src/addon-registry.js +++ b/packages/registry/src/addon-registry.js @@ -113,6 +113,7 @@ class AddonConfigurationRegistry { } this.projectRootPath = projectRootPath; + this.isVoltoProject = packageJson.name !== '@plone/volto'; this.voltoPath = packageJson.name === '@plone/volto' ? `${projectRootPath}` diff --git a/packages/volto/__tests__/webpack-relative-resolver.test.js b/packages/volto/__tests__/webpack-relative-resolver.test.js index b7fcd88393..429946a216 100644 --- a/packages/volto/__tests__/webpack-relative-resolver.test.js +++ b/packages/volto/__tests__/webpack-relative-resolver.test.js @@ -79,6 +79,7 @@ describe('WebpackRelativeResolver', () => { it('handles "installed Volto" resolve requests', () => { const registry = makeRegistry(); + registry.isVoltoProject = true; const resolver = new WebpackRelativeResolver(registry); resolver.voltoPaths['@plone/volto/'] = '/myvoltoproject/node_modules/@plone/volto/src'; diff --git a/packages/volto/webpack-plugins/webpack-relative-resolver.js b/packages/volto/webpack-plugins/webpack-relative-resolver.js index b292e82e89..acbb5dd017 100644 --- a/packages/volto/webpack-plugins/webpack-relative-resolver.js +++ b/packages/volto/webpack-plugins/webpack-relative-resolver.js @@ -5,11 +5,9 @@ class RelativeResolverPlugin { this.source = source || 'resolve'; this.target = target || 'resolve'; this.registry = registry; - this.voltoModulePath = require - .resolve('@plone/volto') - .split('/') - .slice(0, -1) - .join('/'); + this.voltoModulePath = registry.isVoltoProject + ? require.resolve('@plone/volto').split('/').slice(0, -1).join('/') + : `${registry.voltoPath}/src`; this.voltoPaths = Object.assign( { '@plone/volto/': this.voltoModulePath }, ...Object.keys(registry.packages).map((k) => ({ From b202aebbb9eed202f7437f3dd1fcc0d29369523c Mon Sep 17 00:00:00 2001 From: Victor Fernandez de Alba Date: Tue, 19 Mar 2024 08:24:04 +0100 Subject: [PATCH 5/5] Changelog --- packages/registry/news/5893.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/registry/news/5893.bugfix diff --git a/packages/registry/news/5893.bugfix b/packages/registry/news/5893.bugfix new file mode 100644 index 0000000000..ece8b0dd9a --- /dev/null +++ b/packages/registry/news/5893.bugfix @@ -0,0 +1 @@ +Cross-package manager Volto path resolver in `webpack-relative-resolver` @sneridagh