V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
libasten
V2EX  ›  问与答

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

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

    以前写一些 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   ·   实用小工具   ·   2866 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:36 · PVG 16:36 · LAX 00:36 · JFK 03:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.