前端欠下一大堆技术债,带着节操跑了!我们没有办法,只能自己上。。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oldcai
0.01D
V2EX    前端开发

前端欠下一大堆技术债,带着节操跑了!我们没有办法,只能自己上。。

  •  
  •   oldcai
    PRO
    oldcai 2016-05-19 20:55:08 +08:00 3498 次点击
    这是一个创建于 3511 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在代码很混乱,实现一个功能就要各种复制粘贴

    于是我想重构一下,变得可以复用

    对比了下 Grunt/Gulp/Brunch ,看到那么多人说 Brunch 的好话,然后又比较认同约定大于配置的理念,就选了它,过完了文档,大致知道怎么回事。。

    然后开始撸第一个文件,就懵了。。。资料也比较难搜到

    发现几个不理解 /不知道如何更科学地使用的地方:

    1. 读不到 bower 安装的模块

      如果发现 bower.json , brunch 会去加载 bower_components 的包,

      因为如果只有 bower.json 没有 bower_components 就会报错。

      但是,如果 require 的包 bower 安装过,但是 npm 没有安装的包,又会提示读不到模块。

    2. 文件包含不方便

      require 了在 npm 中安装的某个包,但是没有输出到最终的文件中,而且 joinTo 中配置只能一个正则对应一个文件。

      如果只是像 demo 5-npm-too 中写成

      'libraries.js': /^(?!app\/)/, 

      会导致有的页面的 js 里不需要包含的一些第三方库,也会被打包到一起,整体大小会变大。

    3. jQuery 插件不知道如何加载

      因为打包的时候模块化了 jQuery ,加载不到全局变量$,自己使用,通过

      var $ = require('jquery'); 

      问题不大,但是在第三方插件中如何才能正常加载呢?

    有点怀疑是不是 brunch 的使用场景不是这样的,它只适合最终输出文件比较少的使用场景?

    12 条回复    2016-05-20 09:27:43 +08:00
    lxrmido
        1
    lxrmido  
       2016-05-19 21:36:55 +08:00   1
    我来捣乱的:
    我有预感你引入 Brunch 的决定会成为下一个技术债务,纯粹是因为太小众了。
    说好话的人多是因为除了死忠粉没人能持续关注呀!
    你猜对了啊, Brunch 的梦想是成为一个做不那么大型的应用时不浪费太多时间在打包配置上面的打包工具啊!
    Brunch 的团队在玩命地做各种适配,然而相比起 Grunt/Gulp ,它目前还没达到实用的程度,建议你继续 watch ,用其他工具解决问题。
    Wy4q3489O1z996QO
        2
    Wy4q3489O1z996QO  
       2016-05-19 21:42:40 +08:00
    标题画面好喜感
    oldcai
        3
    oldcai  
    OP
    PRO
       2016-05-19 22:54:56 +08:00
    @lxrmido 最后知道真相的我眼泪掉下来。。
    你更喜欢用哪个类似的工具呢?
    ferrum
        4
    ferrum  
       2016-05-19 22:56:45 +08:00
    现在还有用 Grunt 的,开发者不是也弃坑了吗?

    Brunch 没听说过,但我猜你想要的是打包工具,现在最流行的是 webpack 。
    chairuosen
        5
    chairuosen  
       2016-05-19 22:59:05 +08:00
    用了 commonjs 为什么没用 webpack
    oldcai
        6
    oldcai  
    OP
    PRO
       2016-05-19 23:09:42 +08:00
    @lxrmido
    @ferrum
    @chairuosen
    那是 gulp+webpack 么,主要是想自动化一些操作,处理包含关系和打包输出也是一个要求。
    iamppz
        7
    iamppz  
       2016-05-19 23:17:07 +08:00 via iPhone
    brunch 。。连 gulp 也过时了吗
    chairuosen
        8
    chairuosen  
       2016-05-19 23:33:17 +08:00   1
    @oldcai 一般来讲 webpack 自己就够了,除了 html ,加上 gulp 就全搞定, gulp 插件多,社区大。
    pasturn
        9
    pasturn  
       2016-05-20 08:22:55 +08:00 via iPhone
    作为一个小前端 有种不详的预感
    lxrmido
        10
    lxrmido  
       2016-05-20 08:42:11 +08:00
    @oldcai

    自动化操作用 Grunt 或者 Gulp ,不过现在大批 Grunt 的用户转投 Gulp 了

    打包用 webpack
    scgy5555
        11
    scgy5555  
       2016-05-20 08:56:09 +08:00
    @lxrmido 同样的需求 grunt 的代码比 gulp 少一半 转 gulp 干脆直接用 npm 语法就是了 直接写 node 不是更灵活吗
    gulp 插件仍然没有 grunt 多 grunt+webpack 目前最佳解决方案
    lxrmido
        12
    lxrmido  
       2016-05-20 09:27:43 +08:00
    @scgy5555

    这是一场战争, gulp 跟 grunt 争斗的战火已经遍布了整个 nodejs 宇宙,就不要引战了……

    另外我是墙头草,同时在不同的项目里用 grunt 和 gulp ,反正最终区别不大
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     944 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 19:28 PVG 03:28 LAX 11:28 JFK 14:28
    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