一个项目该不该使用多个包管理工具? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cbsw
V2EX    程序员

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

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

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

    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
    PRO
       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/td>
        14
    subpo  
    PRO
       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才能算全栈吧~
    SuYia
        17
    SuYia  
       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  
       
    我觉得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     Solana     2079 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 00:59 PVG 08:59 LAX 17:59 JFK 20:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86