试着学习现代前端工程化,对自动下载安装的海量的模块包感到恐惧 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
libasten
V2EX    问与答

试着学习现代前端工程化,对自动下载安装的海量的模块包感到恐惧

  •  
  •   libasten 2020-03-12 15:06:26 +08:00 2402 次点击
    这是一个创建于 2109 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前写一些 html+js+css 的东西,用的最多就 jQuery 都是手动添加第三方的 js,喜欢吧 js 文件放到项目中的 js 文件夹中,一切尽在掌握的感觉,但是感觉现在跟不上时代了,各种教程都是 npm 啥的。 最近也跟着学学,结果下载的源代码结构马马虎虎能看懂,然后用 npm install 命令执行一下,巴拉巴拉一下子给安装了数百个第三方包在 node _ modules 里面,绝大多数都不知道干啥的,有一种失控的恐惧感。 而事实也是这样的,就拿常见的 vue+elementUI 这样的项目来说吧,然后跟着教程是能跑起来了,但是折腾一会,就不知道什么问题,跑不起来了,这个引用那个引用啥的,乱套了,配置文件越改约乱,最后人崩溃了,放弃学习了。 请问你们当时都是怎么切换进 nodejs 的世界的?

    14 条回复    2020-03-13 00:12:14 +08:00
    ebingtel
        1
    ebingtel  
       2020-03-12 15:10:32 +08:00
    同感……后端是跟不上前端对变化了
    murmur
        2
    murmur  
       2020-03-12 15:17:38 +08:00
    挂个阿里镜像,换个 ssd,装个 vs2018 ( 2020 不行!),npm 就不是问题了,现在的 npm 已经没有以前深层嵌套目录的恐惧,下就下呗
    ipwx
        3
    ipwx  
       2020-03-12 15:20:18 +08:00   2
    vue-cli,自动创建 vue 脚手架。包的话,不是盯着 package.json 就行了么,node_modules 下面其他东西别管它。

    JS 社区虽然乱七八糟的生态体系为人诟病,但是你引用的包引用别的包,别的包再引用第三层包,这不是所有现代语言的基本操作么?无论是 Python PHP Java C# 都是如此。从这个意义上 JS 社区并不比别的语言更乱。

    我觉得你不是跟不上前端的变化,是有点跟不上现代开源软件开发体系。。。
    ipwx
        4
    ipwx  
       2020-03-12 15:21:42 +08:00
    我感觉 vue-cli 已经比较简单了,用完之后根本不用管 webpack config。如果是 scala 的话,迄今为止我还没搞明白 sbt 怎么写的。明明号称 sbt 比 maven 简单,可是用起来却感觉更难用了。
    libasten
        5
    libasten  
    OP
       2020-03-12 16:05:10 +08:00
    @ipwx 一套项目下面引用那么多第三方的东西,有时候更第三方桥接第三方,其中某一个更新了,然后又不支持旧版本什么的,几下折腾崩了。
    murmur
        6
    murmur  
       2020-03-12 16:08:03 +08:00
    @libasten 生产项目切忌随更新,就算 java 也一样,这是常识,除了必要的安全更新能不动就不动
    MrJeff
        7
    MrJeff  
       2020-03-12 16:41:45 +08:00
    @libasten 这时候 package-lock 的重要性就出来了
    hoyixi
        8
    hoyixi  
       2020-03-12 16:44:17 +08:00
    装一砣砣包,算啥失控啊。等个别包不兼容、依赖缺失、之间互相冲突,再加上 npm 那垃圾错误提示,那时候你才能体会啥叫失控。
    libasten
        9
    libasten  
    OP
       2020-03-12 17:53:17 +08:00
    @hoyixi 对,就是你说的这个情况,直接崩了。以前 html+js+css+jQuery 写法时候,都本地自己管理,也没有这么多包,现在不明白这么一个小 demo 都上百个包下下来了呢。
    whileFalse
        10
    whileFalse  
       2020-03-12 21:47:36 +08:00
    如果是跑后端的话无所谓。但这么多包要是在前端,就有点浪费用户带宽了。
    sampeng
        11
    sampeng  
       2020-03-12 23:15:32 +08:00 via iPhone
    我就写个登录页面做个简单 sso…一看几百个包…算了。jquery 蛮好的
    allenpzx
        12
    allenpzx  
       2020-03-12 23:38:00 +08:00
    几百个包大部分都是开发环境依赖,生产环境 build 之后就 html + 静态资源 + 几个 bundle js (这个才是体积大,但是可以分成几个小 bundle,按需加载),a 引用 b 里面 2 个方法,b 里面一共 10 个方法,生产打包只会打包用到 2 个的方法,怎么就失控了。。。。
    bnm965321
        13
    bnm965321  
       2020-03-12 23:47:51 +08:00
    前端社区践行 DRY 原则,一个很小的函数都有单独的包
    xyx650
        14
    xyx650  
       2020-03-13 00:12:14 +08:00 via iPhone
    恐惧就对了,不然谁都以为前端不就写个 html css js 呢,是个阿猫阿狗都随便写,那转业的前端还要不要吃饭
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2187 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 16:08 PVG 00:08 LAX 08:08 JFK 11:08
    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