V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
djyde
V2EX  ›  分享创造

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

  •  
  •   djyde ·
    djyde · 2015-02-20 13:58:06 +08:00 · 2963 次点击
    这是一个创建于 3567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 [email protected]@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 [email protected]@js //cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.13/angular.min.js

    这样就成功 pull 下来了。。

    现在在另一个文件夹里 install:
    $ sopa install [email protected]@js javascripts

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

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

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

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

    13 条回复    2015-02-20 20:27:13 +08:00
    kawaiiushio
        1
    kawaiiushio  
       2015-02-20 14:02:02 +08:00 via iPhone
    沙发支持大神
    viko16
        2
    viko16  
       2015-02-20 14:12:58 +08:00 via Android
    看了学校状况怎么那么眼熟,一看楼主发现是熟人2333…
    djyde
        3
    djyde  
    OP
       2015-02-20 14:18:48 +08:00
    @viko16 2333 我还给你发过 pull request 呢。。。话说我私信了网协部长说想搞个内网 cnpm,他没鸟我。。。
    viko16
        4
    viko16  
       2015-02-20 14:21:23 +08:00 via Android
    @djyde 哈哈,这个没准可以帮你,扣扣私聊~
    djyde
        5
    djyde  
    OP
       2015-02-20 14:27:16 +08:00
    @viko16 不过内网服务器貌似是 win server.... 我要了也没用=。=
    viko16
        6
    viko16  
       2015-02-20 14:32:01 +08:00 via Android
    @djyde 目前手上的资源,系统是随便我装的,有难度的反而是域名申请啊2333
    msg7086
        7
    msg7086  
       2015-02-20 14:36:53 +08:00
    真诚地建议不要用SOPA这个词。
    这个词曾经吵得沸沸扬扬的。
    djyde
        8
    djyde  
    OP
       2015-02-20 14:44:04 +08:00
    @viko16 那蛮好,随时联系 randypriv at gmail dot com
    0x142857
        9
    0x142857  
       2015-02-20 16:03:21 +08:00 via Android
    @msg7086 那正是他为什么用这个词的原因 XD
    msg7086
        10
    msg7086  
       2015-02-20 18:36:23 +08:00
    @0x142857 あれ竟然错过了最后那段说明→_→
    0x142857
        11
    0x142857  
       2015-02-20 18:49:33 +08:00 via Android
    @msg7086 我没错过
    Sunnyyoung
        12
    Sunnyyoung  
       2015-02-20 19:41:01 +08:00
    @viko16 我不同意,嘿嘿
    0x142857
        13
    0x142857  
       2015-02-20 20:27:13 +08:00 via Android
    @msg7086 不过这名字确实不好……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3298 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:40 · PVG 08:40 · LAX 16:40 · JFK 19:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.