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

2016-05-19 20:55:08 +08:00
 oldcai

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

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

对比了下 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 的使用场景不是这样的,它只适合最终输出文件比较少的使用场景?

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

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

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

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

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

另外我是墙头草,同时在不同的项目里用 grunt 和 gulp ,反正最终区别不大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/279855

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX