前端新人求教:前端工程化 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
unco020511
V2EX    程序员

前端新人求教:前端工程化

  •  
  •   unco020511 2023-03-08 17:41:18 +08:00 2250 次点击
    这是一个创建于 958 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在学 vue 和 node 准备用 js 来做一个网站应用,包括前后端

    但是感觉前端的东西很多:

    • npm
    • cli
    • node
    • vue
    • yarn
    • webpack
    • Vite
    • es6/es2015
    • Babel
    • ESLint
    • Prettier
    • ...

    我本身不是做前端的,所以对前端的工程化比较陌生,看起来挺复杂,想问下有没有比较全面的资料来介绍前端开发工程化的一些历史是如何逐步发展的,特别是上面这些工具 /库的出现场景,是为了解决什么问题,然后现状是什么样的,推荐用哪些工具,以及最佳实践

    12 条回复    2023-03-08 19:38:28 +08:00
    superedlimited
        1
    superedlimited  
       2023-03-08 17:49:18 +08:00
    我们做前端的,一般第一件事就是把 mdn 全文背诵~
    yhxx
        2
    yhxx  
       2023-03-08 17:50:19 +08:00
    不太恰当的类比:
    npm - maven
    vue - spring
    yarn - gradle
    webpack - jvm
    ES6/ES2015 - JDK1.8/Java SE 8
    ESLint - Detekt
    pengtdyd
        3
    pengtdyd  
       2023-03-08 17:51:47 +08:00
    学 react 吧,趁现在还是新人,浪子回头还不晚。V 站 react 多
    xqk111
        4
    xqk111  
       2023-03-08 18:01:09 +08:00
    @pengtdyd 哈哈哈,突然发现这么多做 react ,我还以为很少
    string2020
        5
    string2020  
       2023-03-08 18:04:45 +08:00
    建议先学百度搜索
    b1ncer
        6
    b1ncer  
       2023-03-08 18:07:44 +08:00   1
    这时候就要搬出偶像的这篇回答了:

    大公司里怎样开发和部署前端代码? - 张云龙的回答 - 知乎
    https://www.zhihu.com/question/20790576/answer/32602154
    foyo
        7
    foyo  
       2023-03-08 18:54:16 +08:00
    无脑上 Nuxt.js 或 Next.js ,工程都搭建好了,按照文档写代码就好。
    AV1
        8
    AV1  
       2023-03-08 19:02:42 +08:00 via Android
    直接用脚手架,不用你自己折腾这些
    jydeng
        9
    jydeng  
       2023-03-08 19:04:41 +08:00
    用脚手架,真的需要再学
    dcsuibian
        10
    dcsuibian  
       2023-03-08 19:24:06 +08:00
    打好 js 基础,es5 、es6 得熟悉
    决定选 vue 还是 react ,然后找个 B 站视频跟着学下去,学完脚手架就基本 ok 了

    看着很多,但其实没那么夸张
    es5 、es6 是 js 基础,必须会
    node 文档就不用看了(毕竟你还是写前端)。npm 学一下,其实就是个装包的,总共就几个命令。
    yarn 跟 npm 类似,不必学,npm 配置好代理完全够用。更何况还有 pnpm
    webpack 、vite 、babel 、eslint 、prettier 一般都是脚手架附带的,用不着管
    cli 算啥?不就是命令行么
    ChefIsAwesome
        11
    ChefIsAwesome  
       2023-03-08 19:29:26 +08:00   1
    我简单介绍下历史:
    1.为了合并文件以减少 http 请求,为了混淆前端代码,出现了最早的命令行工具。
    2.代码当然要模块化,可是早期网页交互非常简单,js 并没有模块化的概念。node 造了一个模块化的系统。网页前端开发者觉得不错,于是有了工具,让网页开发的时候可以用 node 的模块化系统,最后合并成浏览器可以用的 js 文件。
    3.这种合并文件的操作,事实上就跟编译差不多。既然都要编译了,js 的语法也可以改了。react 这种 js 文件里写 html ,脑洞比较大的想法就出现了。
    4.想用新语言特性,旧浏览器不支持怎么办,那就写新语言,babel 编译成旧语言。想给 js 加类型系统怎么办,那就造个 typescript ,再编译成 js 。编译速度慢,那就造个新的编译系统。
    ljrdxs
        12
    ljrdxs  
       2023-03-08 19:38:28 +08:00
    我不做前端了。
    当年前端工程化:
    一、不跑后端代码,如何只靠假数据渲染模板、模拟接口?前端自己造假数据、status code 。
    二、开发环境完整代码,上线或测试环境自动压缩(删注释之类)
    三、CDN 独立发布,不跟后端一起。

    我还记得上传文件异步接口,测试上传进度,我接触到最牛逼的高手们都没法模拟,都说要写真实接口。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3519 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 10:38 PVG 18:38 LAX 03:38 JFK 06:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86