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

2020-03-12 15:06:26 +08:00
 libasten

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

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

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

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

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

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

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

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

© 2021 V2EX