Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

关于前端工程化工具的一些纠结

  最早大家都写批处理来解决前端项目发布前的打包任务问题。后来,grunt 伴随着 nodejs 一起出现,虽然很难用,但确实火了一段时间。再后来,gulp 优秀的流机制几乎取代了那猥琐的 grunt。现在,webpack 又把前端项目组件化这个思想推向了一个新时代。
  grunt 那完全反人类的设计确实是该死的。但是 gulp 和 webpack 这是两个不同的方向,它们甚至可以同时用于项目中(虽然会很奇怪),并不是谁取代谁的关系。 所以 grunt 我就无视了,接下来扯一扯 gulp 和 webpack。
  gulp 用起来确实很不错,但我写了这么久却发现它好像并没有做什么事。注册任务?处理任务依赖?这些事情真的有必要用 gulp 么?其实 gulp 能做的事 Makefile 就能做了,为何还要兴师动众地使用 gulp?另一方面,使用 gulp 就必须使用 gulp 插件。虽然目前 gulp 插件挺齐全,但质量确实有点呵呵,而且如果项目有什么特殊需求的话确实会遇到没插件可用得自己写插件的情况。所以虽然 gulp 比 grunt 好用得多,但我觉得它的存在是多余的,不如直接用 Makefile?
  webpack 的思想是组件化,对每个入口文件加载其依赖后打包。如果只是纯 js 的项目,它确实非常好!但一个普通的项目中通常还会有 DOM 和 CSS。这两个东西总是全局的。也就是说在 Web 上打包总是打不严实,代码中总是可能出现一些全局耦合的东西。所以所谓组件化在目前而言只是个美好的梦而已。但是不得不承认,将来 Web 的发展方向肯定是组件化的,webpack 的思想可能会可以走得更远。
  前端工程化这一块的坑还是巨大的,用什么工具其实在开发过程中根本感受不到问题。即使是 grunt 那么恶心的东西,如果没去写配置文件也不会觉得有什么问题。我现在也很难说哪个好,因为目前没有任何一套打包工具是我用着顺手的。也许问题不是出在工具上?而是出在「打包」这件事本身上?
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^