导入“ sjcl”时,Webpack 4不需要的库。

时间:2018-08-24 01:31:11

标签: javascript webpack webpack-4

我创建了一个简单的webpack 4演示项目,该项目没有任何配置。我添加了一个简单的index.js,它仅打印出一条简单的行,并且一切正常。 900字节的main.js会按预期生成。

但是,当我需要24kb库'sjcl'(具有0个依赖项)然后执行构建时,会生成一个400kb文件。我已经使用分析器对正在发生的事情有任何想法?

这就像webpack正在导入大量依赖项来处理该库一样。我该如何缓解呢?

index.js

require("sjcl");
console.log("hello world");

package.json

{
  "name": "js-demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "sjcl": "1.0.7"
  },
  "devDependencies": {
    "webpack": "4.16.5",
    "webpack-cli": "3.1.0"
  }
}
  

警告资产大小限制:以下资产超出了   建议的大小限制(244 KiB)。这可能会影响网络性能。   资产:main.js(323 KiB)

下面是我的分析器: https://pastebin.com/iguWmmaS

1 个答案:

答案 0 :(得分:0)

像webpack一样,将捆绑包中与浏览器兼容的版本添加到节点加密模块中,从而大大增加了大小。为防止Webpack这样做,您可以对webpack使用以下选项来忽略该库。

module: {
            noParse: [
                /sjcl\.js$/,
            ]
         }