Sopa - 造了一个基于本地的前端 package manager 轮子

2015-02-20 13:58:06 +08:00
 djyde

https://github.com/djyde/sopa

大年初一我还在写代码 :)

其实是这样的,我们学校的奇葩网络是算流量的,每个月 30 块,9G 流量,用完限速 20k/s。所以我每次 npm installbower install 的时候都很心痛 =。=

所以我才造了 Sopa 这个轮子,是一个本地版的 bower。它的原理是你在某个 folder 里 $ sopa pull 一些静态文件,然后在其它目录里 $ sopa install 的时候直接从这个 folder 取 package.

举个栗子:

安装 npm install sopa -g

首次用 Sopa 需要先设置一个存 package 的目录,比如$ sopa set-dir ~/sopa_components

我现在想 pull 一个 angular 下来,$ sopa pull 的用法是 $ sopa pull packageName@x.y.z@type fileURL

packageName 是这个 package 的名字,由你自己定,当 pull 下来以后当你需要 install 的时候就以这个名字来 install。

x.y.z 是版本号,type 是类型,分 js 和 css。

fileURL 一般是文件是地址,我一般从 cdnjs 上面 copy 下来。

所以这里要 pull angular 的话,我是先从 cdnjs 找到 angular 的 cdn url,然后 copy:

$ sopa pull angular@1.3.13@js //cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.13/angular.min.js

这样就成功 pull 下来了。。

现在在另一个文件夹里 install:
$ sopa install angualr@1.3.13@js javascripts

后面的 javascripts 是你要把他 install 到哪个文件夹,这里就是 install 到 javascripts 里,这个随你定。

如果你想看你 pull 过的 package, 你可以 $ sopa ls
如果你想看某个 package 有哪些 pull 过的版本,你可以 $ sopa ls thepackage

开源在 Github: https://github.com/djyde/sopa

主要是写给自己用,如果同时能帮助到你,请告诉我,我会非常高兴 :)

2978 次点击
所在节点    分享创造
13 条回复
kawaiiushio
2015-02-20 14:02:02 +08:00
沙发支持大神
viko16
2015-02-20 14:12:58 +08:00
看了学校状况怎么那么眼熟,一看楼主发现是熟人2333…
djyde
2015-02-20 14:18:48 +08:00
@viko16 2333 我还给你发过 pull request 呢。。。话说我私信了网协部长说想搞个内网 cnpm,他没鸟我。。。
viko16
2015-02-20 14:21:23 +08:00
@djyde 哈哈,这个没准可以帮你,扣扣私聊~
djyde
2015-02-20 14:27:16 +08:00
@viko16 不过内网服务器貌似是 win server.... 我要了也没用=。=
viko16
2015-02-20 14:32:01 +08:00
@djyde 目前手上的资源,系统是随便我装的,有难度的反而是域名申请啊2333
msg7086
2015-02-20 14:36:53 +08:00
真诚地建议不要用SOPA这个词。
这个词曾经吵得沸沸扬扬的。
djyde
2015-02-20 14:44:04 +08:00
@viko16 那蛮好,随时联系 randypriv at gmail dot com
0x142857
2015-02-20 16:03:21 +08:00
@msg7086 那正是他为什么用这个词的原因 XD
msg7086
2015-02-20 18:36:23 +08:00
@0x142857 あれ竟然错过了最后那段说明→_→
0x142857
2015-02-20 18:49:33 +08:00
@msg7086 我没错过
Sunnyyoung
2015-02-20 19:41:01 +08:00
@viko16 我不同意,嘿嘿
0x142857
2015-02-20 20:27:13 +08:00
@msg7086 不过这名字确实不好……

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

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

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

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

© 2021 V2EX