是时候放弃用 cnpm 而去使用 smart-npm 了

2015-04-06 13:21:20 +08:00
 qiu8310
首先我说下我用 cnpm 不爽的地方:

1. 用 cnpm publish, cnpm adduser 等命令(更多会报错的命令可以查看http://qiu8310.github.io/smart-npm/global.html#npm-cmds)都会报错,而且它也没有一个友好的提示

2. 有很多 package 都集成了 npm install 在它里面,比如 yeoman 的所有 generator,你使用这些 generator 后,它会自动在最后直接 npm install, 这时你就得 Ctrl + C 中断操作,然后再用 cnpm install。你不觉得这样很不爽吗?

3. 也有很多 package 会拉一些线上的信息,这时它们走的 registry 还是官方的 https://registry.npmjs.org/ , 这时我们网络又会被卡死。

如果你也遇到过上面的问题,可以来看看这个 https://github.com/qiu8310/smart-npm , 保证你不会失望,也欢迎你吐槽!
7679 次点击
所在节点    Node.js
22 条回复
loading
2015-04-06 13:28:25 +08:00
用淘宝的npm,有时也感觉卡死了,没进度信息,心里发毛
qiu8310
2015-04-06 13:35:02 +08:00
很简单,你在用 cnpm 或者 npm 的时候,在命令后面加上 --verbose 就会显示出进度信息了。

进度信息的详细程度你可以参考这里 https://github.com/qiu8310/smart-npm#%E8%B0%83%E8%AF%95-npm
qiu8310
2015-04-06 13:35:52 +08:00
@loading 忘记 at 你了,补充一下,回复叫上楼
oott123
2015-04-06 14:47:15 +08:00
用 cnpm 的源,npm 的 binary 不就好了…
qiu8310
2015-04-06 14:53:08 +08:00
@oott123 照你说法,应该是把 cnpm 的源配置在 .npmrc 的文件中了?

那你用 npm publish 是不会成功的,默认 publish 必须向官方的 registry 发布,cnpm 的源不接受发布请求。

还有很多其它问题你可以去我项目的主页看看 https://github.com/qiu8310/smart-npm/
megoo
2015-04-06 16:30:30 +08:00
可以替代官方npm么?
oott123
2015-04-06 16:30:40 +08:00
@qiu8310 是的
不过我也没有做过 publish 这种操作就是了。
qiu8310
2015-04-06 18:37:12 +08:00
@megoo 我写这个就是为了替代官方的 npm。

但说替代不太好,因为我底层是使用官方的 npm 的;这个 smart-npm 更适合在我们中国使用,它会自动根据你的行为判断是用国内的镜像还是用官方的镜像。

有兴趣可以去项目主页看下,这里的文档更详细(刚有更新) https://github.com/qiu8310/smart-npm
qiu8310
2015-04-06 18:41:14 +08:00
@oott123 你也可以试用下 smart-npm 的,对你使用不会有影响,只会更方便

使用过程中不排除有 bug,但 bug 只会让它更完美!
oott123
2015-04-06 20:17:13 +08:00
@qiu8310 如果我没有 public 请求,我没理由抛弃原生的 npm 不是…
不过是非常棒的项目 :) 加油!
coolicer
2015-04-06 21:11:18 +08:00
我可以相信你吗?
sanddudu
2015-04-06 21:44:20 +08:00
这个支持 Windows 吗?

另外,我 publish 的时候从来没卡或者失败过,基本上最小化去看会儿视频就好了,比起 Github 莫名其妙的卡死还好很多,而且发布这种事情也急不得。
qiu8310
2015-04-06 21:54:43 +08:00
@sanddudu 更新了文档, Windows 审用,我没完全测试
qiu8310
2015-04-06 21:57:10 +08:00
@coolicer 咯,这个看你个人啊。有兴趣可以研究下源代码,非常短,只是分析了一个你传入的参数,从而选择是用 npm 还是 cnpm 命令
alsotang
2015-04-06 23:25:32 +08:00
@qiu8310 windows 支持的话。如果这个库本身没有什么 c++ addon 代码,光是 js 是可以直接在 win 上面跑的。当然,如果 travi-ci 可以支持的话,也可以在上面测一测。
qiu8310
2015-04-07 10:26:35 +08:00
@alsotang 我在 windows 上试了下,确实支持,但体验不好,每次运行一个命令都会创建一个子进程,没有在 Linux 或者 Mac 上的体验爽
dc2002007
2015-04-10 18:30:41 +08:00
厉害,跟楼主好好学习
thewei
2015-04-21 09:51:23 +08:00
平时我是用nrm做切换。为什么要替换npm呢,做它的扩展不好吗?
KuroNekoFan
2015-04-21 14:41:42 +08:00
之前试用了一下,然后npm gulp卡了一个下午,本来以为是公司垃圾网络的问题,然后修复了一下node,然后就正常了....
qiu8310
2015-04-28 07:21:03 +08:00
@thewei 这应该不是个问题,我也用 nvm,但我一般不切换,哈哈。

其实不管是做扩展还是替换,如果你用 nvm 换到另一个 node 版本,旧有的 npm 都会被换掉的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181865

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX