Web 技术研究所

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

工具就应该写成原生可执行程序

  前端工程化这个话题从 grunt 开始就一直没消停过,以前是 grunt 一家独大的(虽然它巨难用),现在各种项目打包工具越来越多样化变得难以选择。而且这些打包工具的插件风格也都不同,经常会遇到插件不统一的情况,比如同一个插件 grunt 没问题,gulp 就有坑。
  每次看到 package.json 中的一坨依赖我都觉得恶心,为什么非要把各种工具做成「某个打包工具的插件」这么不伦不类的东西?为什么不是打包工具自己去适应其它工具的风格?而且目前前端打包工具都是基于 nodejs,这就把这些工具的开发范围限死在了 nodejs 上(虽然也有一些直接用了 C++)。
  我觉得,将所有工具都做成可执行文件,通过标准输入输出以及错误流来传递数据,通过命令行参数来配置功能才是最好的。如果所有的工具都是可执行文件,那么无论何种编程语言都可以开发这些工具,而且安装方式也不限于 npm。这样可以得到更多工具的支持。接口风格完全是标准 io 流和命令行参数那一套,至少也是标准的东西。比起一堆不伦不类的「插件」要清楚得多。
  不过这个问题确实挺容易解决的,因为我们可以为这些打包工具写一个「插件」,让其拥有调用任何可执行程序的能力(貌似这个轮子已经有人造过了)。虽然很白痴,但我觉得更白痴的应该是这些打包工具。反正我不太爱用它们,我觉得 Makefile 也许更直接,更简单,更粗暴。
  不过 Makefile 本身确实不是用来干这件事的,我只是借助了它的一部分功能而已。对于前端工程化这件事也许只需要一个比 Makefile 还简单的工具即可实现。搞一大堆没用的,真的让项目的打包过程更易用更易读了么?
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^