Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

npm 简直烂!

  好像是因为 bower 的作者没力气维护下去了?所以大家都变得排斥起 bower?但无论是以前还是现在,我喜欢 bower 都胜过 npm。虽然 bower 本身也只是 npm -g 安装的一个工具而已,但就从它俩给我的体验上 bower 就是比 npm 好至少用起来不会像 npm 那样遇到各种问题。
  其实大部分讨厌 bower 的人并不是因为 bower 难用,而是觉得既然有了 npm 干嘛还需要 bower?它们做的事情不都一样吗?而且 bower 本身都是从 npm 安装的,这不是更加尴尬么?一开始我用 npm 和 bower 的时候也是这么想的。全用 npm 就好了,干嘛还要装个 bower?于是很长一段时间内我也只用 npm 不用 bower。但渐渐地就发现,npm 非常难用!

1. 各种慢

  首先是自身慢,npm 的依赖分析机制导致了 npm 就是慢,而且越升级越慢 npm3 比 npm2 慢得多。然后是镜像慢,npm 的镜像总是来自奇奇怪怪的地方,经常会被墙。虽然国内一些自己搭建的镜像确实挺快的,但它们的更新并不及时。

2. 安装后编译

  很多东西是安装后编译的,这些编译没有统一的验证机制,导致了编译过程被外部中断后不可用的情况。而且虽然功能不可用,npm install 的时候也无法检测到并重新安装。这让很多不太熟悉 npm 工作机制的人在安装失败一次之后就再也无法恢复。

3. 包分得太碎

  一个项目的依赖安装下来几千个依赖的包,对于那些一个函数打一个包的东西我实在是喜欢不起来。到了 npm3 以后依赖被扁平化,这些零碎的包让 npm 的执行速度直接慢成狗。

4. 安全问题

  在 npm 安装过程中有各个时机可以执行 shell 命令,这可能造成安全问题


  比起 npm,bower 就很容易驾驭。虽然功能方面 bower 和 npm 根本不是一类东西(npm 更像是 apt-get 之类的东西),但如果同一件事可以用 npm 和 bower 来做的话,我也许还是会用 bower。对于系统级工具的安装,npm 不如 apt-get、brew 之类的做得好。对于库安装,它不如 bower。有时候我真是非常反感 npm。要不是懒得管理版本,我可能都直接 curl 一个 github 仓库去。

网名:
3.84.186.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^