Bug #20511
Webpack config should look for nested node_modules
Description
The current value of resolve.modules in config/webpack.config.js is "path.join....'node_modules')".
This value doesn't work when dependencies have been installed using global style (npm install --global-style true).
In this style, which is what foreman-packaging uses, dependencies of dependencies get nested like:
node_modules/dependencyA/node_modules/dependencyB
in a tree like structure. foreman-packaging needs to install in this mode because the npm cache is stored
like a tree.
The solution I've been given in #webpack is to use a string 'node_modules' instead of path.join. The reason is that
webpack purposefully looks for nested dependencies in that case, but not if you provide the full path.
Associated revisions
History
#1
Updated by The Foreman Bot about 5 years ago
- Status changed from New to Ready For Testing
- Assignee set to Daniel Lobato Garcia
- Pull request https://github.com/theforeman/foreman/pull/4719 added
#2
Updated by Daniel Lobato Garcia about 5 years ago
- Legacy Backlogs Release (now unused) set to 240
#3
Updated by Anonymous about 5 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset 8822b551cf934dc25fbc4d0052d3afed602af327.
#4
Updated by Daniel Lobato Garcia almost 5 years ago
- Category set to Plugin integration
Fixes #20511 - Webpack config should look for nested deps
The current value of resolve.modules in config/webpack.config.js is
"path.join....'node_modules'"".
This value doesn't work when dependencies have been installed using
global style (npm install --global-style true).
In this style, which is what foreman-packaging uses, dependencies of
dependencies get nested like:
node_modules/dependencyA/node_modules/dependencyB
in a tree like structure. foreman-packaging needs to install in this
mode because the npm cache is stored
like a tree.
The solution I've been given in #webpack is to use a string
'node_modules' instead of path.join. The reason is that
webpack purposefully looks for nested dependencies in that case, but not
if you provide the full path.