webpack-bundle-analyzer显示我的vendor.js中包含的elliptic和bn.js 但这些模块不在代码中使用或包含在package.json中。
npm ls bn.js给出:
├─┬ eslint-import-resolver-webpack@0.8.1
│ └─┬ node-libs-browser@1.1.1
│ └─┬ crypto-browserify@3.11.0
│ └─┬ browserify-sign@4.0.0
│ └── bn.js@4.11.6
答案 0 :(得分:3)
如果您在代码中的某处将elliptic
作为依赖项导入,则Webpack中包含bn.js
和crypto
(以及其他较小的模块)。
为了避免这些巨大的依赖关系,你可以寻找一个特定的npm模块,它提供你需要的功能(ality)。
例如,我正在导入crypto
来执行;
const crypto = require('crypto');
const hmac = crypto.createHmac('sha1', buf);
...而是(在这种情况下......),您可以安装create-hmac
module,并执行;
const createHmac = require('create-hmac');
const hmac = createHmac('sha1', buf);
如果你需要一些动力;删除crypto
作为依赖性从我们的gzip压缩包大小减去150Kb(但YMMV取决于您正在使用的加密方法)。
答案 1 :(得分:-2)
这些是您的依赖项的依赖项。例如source