V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cbsw
V2EX  ›  程序员

一个项目该不该使用多个包管理工具?

  •  
  •   cbsw ·
    dengshuan · 2014-12-14 09:33:40 +08:00 · 4557 次点击
    这是一个创建于 3629 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在各种语言、甚至工具都有自己的包管理工具了,很多时候开发过于依赖这些工具,结果被工具化了,一个小项目,代码没多少,依赖工具却一大堆

    HN 上有人发了自己的一个 PHP 小项目,用到 npm, bower, composer, grunt 这些工具,结果被各种吐槽

    23 条回复    2014-12-15 15:59:55 +08:00
    ffffwh
        1
    ffffwh  
       2014-12-14 09:52:17 +08:00 via Android
    看来需要个管理包管理工具的工具。
    xuwenmang
        2
    xuwenmang  
       2014-12-14 10:02:02 +08:00
    适用性太小。
    suilongfei
        3
    suilongfei  
       2014-12-14 10:47:45 +08:00
    我觉得,做项目依照重要的先后顺序应该是:
    suilongfei
        4
    suilongfei  
       2014-12-14 10:48:18 +08:00   ❤️ 1
    我觉得,做项目依照重要的先后顺序应该是:
    1.可运行
    2.可维护
    3.简单
    4.性能
    ……
    WildCat
        5
    WildCat  
       2014-12-14 11:03:39 +08:00 via iPhone
    这几个一点不冲突吧
    phoneli
        6
    phoneli  
       2014-12-14 11:25:26 +08:00
    用了很多工具不是问题。。关键看用起来,是不是简单快捷。真的提高生产效率。
    sxd
        7
    sxd  
       2014-12-14 11:58:12 +08:00
    ichou
        8
    ichou  
       2014-12-14 13:21:44 +08:00
    开发环境无所谓吧~ 包管理本来就是用来提高效率的
    项目依赖多 只要不那么拖性能 也完全没问题 敏捷开发才不在乎这些
    问题就是部署略微繁琐~~ 这个可以通过写部署脚本来简化,如果想脱离管理包工具还可以自己编译依赖~ 哦耶
    Livid
        9
    Livid  
    MOD
       2014-12-14 13:26:04 +08:00
    Puppet 支持大部分主流的 package 管理工具,可以把所有的这些依赖关系写到一个 Puppet 文件里。
    RaidNight
        10
    RaidNight  
       2014-12-14 15:02:12 +08:00
    既然是PHP项目,那么肯定是面向Web的。
    我觉得 composer和bower肯定不算多。
    如果不用这两个包管理器,自己去github或者各大官网找源码下载,解压复制到目录的过程远比 composer install 或者 bower install 复杂的多。

    npm 和 grunt 可以放在一边单独说,前端如果使用了一些类似less 或者 coffee 这样的需要编译的工具也是需要的。
    lujiajing1126
        11
    lujiajing1126  
       2014-12-14 15:02:33 +08:00
    这几个功能又不重复。。。npm是构建工具的管理
    bower是前端项目lib依赖的管理
    grunt是前端的构建工具,和上面是一起用的
    composer是php的依赖管理
    依赖管理的目的在于多人协作不至于因为版本问题出bug
    我觉得这个人应该是挺专业的
    rebornix
        12
    rebornix  
       2014-12-14 15:03:00 +08:00
    bower来管理js library,npm管理dev dependency,grunt只不过是task runner。有这几个都很正常啊。

    如果你从yeoman的seed project来写Angularjs,这三个工具是默认配备,个人觉得还是很方便的。
    akfish
        13
    akfish  
       2014-12-14 15:16:12 +08:00   ❤️ 1
    人和动物的区别就是人会发明和使用工具。
    用工具不会导致你依赖于工具,而是解放你的精力去进行更有创造力的工作。
    根据我多年的观察,大多用工具导致水平停滞不前乃至下滑的程序员,完全是自己懒,就别怪工具了。

    HN上的吐槽也不过是懒癌晚期不愿意自己去build而已,并且把source和distribution混为一谈。
    当然原作者理论上也是应该提供一个build好的distribution版本。
    subpo
        14
    subpo  
       2014-12-14 16:12:25 +08:00   ❤️ 1
    怎么就不能用,而且grunt不是包管理
    zealic
        15
    zealic  
       2014-12-14 16:38:31 +08:00
    同意 @lujiajing1126
    而且很容易看出这人是个全栈工程师
    lujiajing1126
        16
    lujiajing1126  
       2014-12-14 16:45:23 +08:00
    @zealic 哈哈这个人前端也是挺专业的了
    那得看怎么定义Full-Stack了~
    感觉大部分人还是觉得必须会写APP才能算全栈吧~
    thonatos
        17
    thonatos  
       2014-12-14 18:12:49 +08:00 via Android
    看情况喽。

    我用到了spm做js的模块化。

    bower是一些插件的管理。

    npm是为nodejs服务器服务的。

    谁想喷就喷呗,反正自己用起来方便就好。
    williamx
        18
    williamx  
       2014-12-15 00:32:16 +08:00 via iPhone
    会很麻烦,能不用就不要用。是工具三分毒啊!
    southwolf
        19
    southwolf  
       2014-12-15 08:29:16 +08:00
    “What’s pip?”
    “A python package manager”
    “How do I install it?”
    “easy_install pip”
    “What’s easy_install?”
    “A python package manager”

    233
    tiant167
        20
    tiant167  
       2014-12-15 14:14:57 +08:00
    用 yeoman 的路过…我觉得挺方便的呀,bower自动注入有点烦…还不如自己写~
    hester
        21
    hester  
       2014-12-15 14:24:11 +08:00
    我觉得LZ有些本末倒置了... 工具是为人/项目服务的,说『人话』的意思是:

    如果你自己用的感受是这些工具可以减少工作量的话,那就用;反之,就精简。
    如果你的工具是给其它人用的话,那么你应该考虑大众对这件事情的看法。

    PS:这个问题等同为『什么时候用MVC框架』 :)
    hester
        22
    hester  
       2014-12-15 14:25:50 +08:00
    呃,为了不必要的误会!
    21楼的内容没有任何诋毁等负面情绪,请LZ无虑 :)
    iT2afL0rd
        23
    iT2afL0rd  
       2014-12-15 15:59:55 +08:00
    @ffffwh 哈哈,亮了!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:15 · PVG 00:15 · LAX 08:15 · JFK 11:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.