V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oldcai
V2EX  ›  前端开发

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

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

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

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

    对比了下 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 ,用其他工具解决问题。
    romotc
        2
    romotc  
       2016-05-19 21:42:40 +08:00
    标题画面好喜感
    oldcai
        3
    oldcai  
    OP
       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
       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   ·   我们的愿景   ·   实用小工具   ·   3195 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 341ms · UTC 12:16 · PVG 20:16 · LAX 05:16 · JFK 08:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.