为何前端构建工具这么麻烦

2021-08-09 15:53:04 +08:00
 weimo383
被 webpack 整晕的一天。想问问后端构建工具是不是很方便🌚🌚
15862 次点击
所在节点    程序员
119 条回复
darknoll
2021-08-10 17:10:42 +08:00
1. 没法强制用户用最新的浏览器,所以需要把新语法转成旧语法
2. js 模块化机制糟糕,在 es module 之前没有好用的
pabupa
2021-08-10 17:26:10 +08:00
@TomatoYuyuko 复杂的业务就是需要复杂的实现,这是没办法的事情。原来用 jQuery 要做的事情,用了 React 之后,你还是要做,而且使用更复杂的方式去做……
leetom
2021-08-10 17:27:20 +08:00
@QHKZ 鸭子跑到一半,突然门口一滩血,里面的鸭子出不来了。
vance123
2021-08-10 19:17:18 +08:00
要不是浏览器钦定, lz 才不会用这垃圾脚本语言写程序
catbestme
2021-08-10 20:12:01 +08:00
@rekulas
哈哈哈,形象!
goodboy95
2021-08-10 20:24:19 +08:00
当时学 webpack 纯粹是因为想用 async……
WildCat
2021-08-10 21:33:32 +08:00
1. Webpack 配置不会请用 TypeScript 写 config: https://webpack.js.org/configuration/configuration-languages/

2. 不想配置,请直接用 vite

另外,webpack 慢可以用 esbuild-loader https://github.com/privatenumber/esbuild-loader
littlebaozi
2021-08-10 22:38:31 +08:00
普通做个项目,用 cli 工具生成就行了 不用去学 webpack 自己配置啊 想要改配置再去搜就很快上手了
是为了深入学习那就另说
catbestme
2021-08-10 22:46:45 +08:00
前端所谓的模块化,确实是搞的花里胡哨的,webpack 里面是配置套配置,模块套模块,关系搞得一塌糊涂,比后端的关系搞的还混乱,工具写的这么烂,真不知道有什么好自傲的
Greatshu
2021-08-11 02:35:06 +08:00
Trim21
2021-08-11 08:25:30 +08:00
后端发明一门新语言可以直接用对应语言的运行时或者编译器,要用新特性只需要更新工具链。

前端的新语言都得转成 js 和 CSS,想上新特性要么等用户升级,要么转义成旧代码。

而且模块化还是后来才出来的,为了用户体验也不可能全用浏览器原生支持的模块化方案。(看到个用 vite 的例子,因为依赖太多,浏览器开始渲染前要请求几百个 js )
ada87
2021-08-11 08:35:02 +08:00
后端构建有没经历过这个时代( Java )?:

下载 jar 包,粘贴到 lib, 打开 eclipse,右键项目,导出为 war? 全程人工,本地环境?

停留在 jQuery 的当然可以说,同样是轮子,你的轮子能干的事我的轮子也能干,为啥偏要换?
Obrigado0815
2021-08-11 09:12:06 +08:00
不是有脚手架吗??
Imindzzz
2021-08-11 09:32:10 +08:00
你用哪个 UI 框架不都有脚手架嘛,你刚开始搞,先跑起来再说,后面熟了再定制配置

@ngn999
还有就是我挺看不惯应该这种心态的,觉得前端就应该简单。
新手你直接来配个 cmake 你说要多久。就算新手配置安卓环境那也不是分分钟就能配置好啊,为啥前端构建配置就不能花多一点时间来配置呢。
DOLLOR
2021-08-11 09:34:58 +08:00
说说你放着各种脚手架不用,铁着头去折腾 webpack 的理由。
weimo383
2021-08-11 09:38:48 +08:00
@DOLLOR
来年春招做准备
Seanfuck
2021-08-11 09:41:09 +08:00
jquery 时代一把梭挺好的呀,又快又简单,前端就没多少页面需要搞什么工程化。
qrobot
2021-08-11 09:49:15 +08:00
我敢说,你们大部分说 webpack 不好用的人多半是把 webpack 当作 html-webpack-plugin 在用。

真的不清楚,webpack 什么时候变成的复杂的构建工具了? webpack 本身很简单啊

主要就是一个 Entry(入口), Output(出口), Loaders(装载器) 就这三个配置,Entry 和 Output 是主要配置,和传统的 html js css 开发本身就是一样的。


你们为什么会感觉到复杂?

1. 就说 es6 -> es5 里面的转换,就有很多工具, 比如 babel 进行转换,babel 的配置本身不简单, 或者 esbuild 在或者 ts 也就是可以做到的
2. 例如 css 有很多技术栈, 例如 less,sass 还有 styled-components
3. 越灵活的工具,配置就越复杂, 越固定的东西使用越简单,webpack 让你感觉到复杂因为它太灵活了,基本上可以覆盖整个前端的技术栈
leohxj
2021-08-11 09:58:21 +08:00
用脚手架干活, 用 webpack 整活.
shayuvpn0001
2021-08-11 10:01:36 +08:00
@QHKZ 21# 笑死

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

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

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

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

© 2021 V2EX