标签 nodejs 下的文章

国内软件源加速

brew

cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
brew update

此时可以执行 brew config 命令,查看配置信息:

brew config

Node.js

使用淘宝源

npm config set registry https://registry.npmmirror.com/ --global

恢复

npm config set registry https://registry.npmjs.org/ --global

  1. r2 是比较早期的替代品,算是 request next 早期比较通用的产品,core 大约 3.17kb
  2. node-fetch 是仿造 fetch API 写的 NodeJS HTTP 客户端,如果你对 fetch 比较熟悉考虑这个,有点是一直在更新,启动堆栈差不多 20k 。大家比较熟就不多说了。
  3. axios 是浏览器与 NodeJS 兼容的,比较重,因为兼容了浏览器的代码。这部分代码在运行时也会进入堆栈,尽管不会执行,因为不管什么 module 都不能 tree shaking 编程式的分发的代码块。API 有些土里土气,属于简单易懂的状态型编程风格。
  4. bent 也是浏览器与 NodeJS 兼容的,但比较小巧 (意味着功能没有那么多)。API 只有一个函数,但是目前没有基线测试不知道性能如何。
  5. got 专业的 NodeJS HTTP 客户端。非常非常非常大。亮点之一就是支持 pagination 与一些编程式的 hook,社区中有非常非常非常多的示例教你如何使用它,毕竟用的人多。开发者也是知名的开源狂魔 sindresorhus (他维护了 1000+ 的开源仓库),算是比较值得信赖吧。
  6. superagent ,一个有意思的 HTTP 客户端库吧,用的链式 API 。也是兼容浏览器和 NodeJS 。优势是支持 HTTP2,具体可以看这个 PR。早期是你们熟知的 TJ 一个人在写,现在已经是组织在维护。(体积也很大)

总结一下,如果你喜欢小巧一些可以考虑 node-fetchbent,需要功能比较强大就是 gotsuperagent
另外给你们强烈推荐一个适用于微服务的 http-client: zeit-fetch,支持 DNS 缓存、重试和 keep-http-agent,如果你正在写微服务,可以试一试。

最后说一句题外话,现在 NodeJS 的 API 非常的友好,如果你只是一个简单的 request(特别是 get ) 不用库也就几行而已。

npm-check 是用来检查 npm 依赖包是否有更新,错误以及不在使用的,我们也可以使用 npm-check 进行包的更新。

安装npm-check:

npm install -g npm-check

检查npm包的状态:

npm-check -u -g

通过上下键可以移动光标,使用空格键可以选择需要处理的包,回车直接进行处理。选择 npm@3.10.2 包升级到 3.10.3:

? Choose which packages to update. npm@3.10.3

$ npm install --global npm@3.10.3 --color=always

/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/lib
└─┬ npm@3.10.3
  ├── aproba@1.0.4
  ├── has-unicode@2.0.1
  └── read-package-tree@5.1.5

[npm-check] Update complete!
[npm-check] npm@3.10.3
[npm-check] You should re-run your tests to make sure everything works with the updates.

npm outdated 可查看那些包比较旧