I am fairly new to webpack and I have a Vue project using the vue cli
. While analyzing the webpack bundle (built in production mode using vue-cli-service build
) using webpack-bundle-analyzer
, I found that one particular file bn.js
is being included multiple times in the bundle. When running npm ls bn.js
I found that it's parent dependency is webpack
itself.
`-- webpack@4.44.1
`-- node-libs-browser@2.2.1
`-- crypto-browserify@3.12.0
+-- browserify-sign@4.2.1
| +-- bn.js@5.1.3
| +-- browserify-rsa@4.0.1
| | `-- bn.js@4.11.9
| +-- elliptic@6.5.3
| | `-- bn.js@4.11.9
| `-- parse-asn1@5.1.6
| `-- asn1.js@5.4.1
| `-- bn.js@4.11.9
+-- create-ecdh@4.0.4
| `-- bn.js@4.11.9
+-- diffie-hellman@5.0.3
| +-- bn.js@4.11.9
| `-- miller-rabin@4.0.1
| `-- bn.js@4.11.9
`-- public-encrypt@4.0.3
`-- bn.js@4.11.9
So my question is that why is webpack including it's own dependencies in the final bundle when webpack is added as a devDependency (earlier it was a dependency, then I changed it to devDepenency) in the project?
Or if this is the correct behavior then please point me to any docs/resources explaining this behavior.