根据请求浏览捆绑包大小

时间:2015-10-21 18:27:22

标签: node.js browserify

我正在尝试将request库与browserify一起使用。我实际上想在客户端和服务器上使用相同的代码进行API调用。

我创建了一个小例子,我只需要请求。

test.js

var r = require('request');

然后我浏览它并使用disc工具检查大小。

browserify test.js --full-paths --outfile discify/bundle.js && discify discify/bundle.js --output discify/disc.html

生成的bundle.js的大小差不多是1.5 MB。 650 KB是请求本身,625 KB是browserify,156 KB是browserify-core。

所以问题是:

  • 为什么要将browserify和browserify-core包含在捆绑包中?
  • 有没有办法通过浏览器化请求减少捆绑包的大小?

1 个答案:

答案 0 :(得分:2)

Offt,请求很大!

我对所有内容进行了扫描,看起来请求强制浏览器需要一堆核心内容的原因是因为请求大量使用了node.js apis,浏览器为浏览器提供了shims。 (像加密或进程)你可能只需要后端(对于Oauth或你不能用普通库做的事情)。

此外,我不认为请求适用于客户端,因此您需要另一个库 - superagent / axios(两者都在服务器上运行)

如果你只是简单地进行http呼叫,你可以使用superagent / axios。

或者如果您在服务器上需要它但想在客户端上忽略它(因为它在客户端上不起作用)

{
  "name": "mypkg",
  "version": "1.2.3",
  "main": "main.js",
  "browser": {
    "request": false
  }
}

或者,如果您正在使用gulp,那么

bundler.ignore('request');