When you have a dependency that does not export itself properly, you can use the exports-loader
to force it to export the pieces of the file that you need.
Install:
npm i -D exports-loader
Add exports-loader to the module you want:
module: {
loaders: [
...
{
test: require.resolve('./src/js/non_node_modules/left-pad'),
loaders: [
'exports?leftPad',
],
}
],
There is no problem, the module still exists on 'window' object, we want it be es6 module which not exists on 'window' object.
Install:
npm i -D imports-loader
Add imports-loader the the module:
module: {
loaders: [
...
{
test: require.resolve('./src/js/non_node_modules/left-pad'),
loaders: [
'imports?window=>{}',
'exports?leftPad',
],
}
],
},
Here it sets 'windows' object to empty object to clean the left-pad module.