从前端开发到底层理解:为什么现在的JS库都要用npm?
现在的JS库,就像是乐高积木。如果用传统方式(直接引入js文件),就相当于买了个乐高成品摆在那儿 —— 好看是好看,但你别想改动分毫。而npm这种方式,就像是给你一堆散装的积木,让你自由发挥。
"但是我就写个简单的页面啊,用不着这么折腾吧?"
等等,先别急着下定论,来看看这些问题:
1. 为什么现在都用npm?
记得以前写页面,为了引入一个jQuery,要把整个巨无霸js文件都塞进去。那感觉,就像是你去便利店买个泡面,人家非要连锅带灶台一起卖给你...
用npm最大的好处是啥?按需引入!
比如你就想用lodash的map函数:
// 以前的方式:引入整个lodash库(几百KB)
<script src="lodash.js"></script>
// 现在的方式:只引入需要的函数(几KB)
import { map } from 'lodash/map'
2. "但我不会node啊!"
其实吧,现在不会node的前端,就像是不会用筷子的中国人 —— 虽然用叉子也能吃饭,但...你确定你要这么干?
不过我懂你的痛点!来,给你三个偷懒的方案:
用CDN(最简单)
html
Copy
<script src="https://unpkg.com/vue@3"></script>
用在线Playground(适合学习)
- CodePen
- JSFiddle
- CodeSandbox
用Deno(新选择) 直接在浏览器中用ES模块,不需要npm
3. 真相是...
说实话,这种变化是时代的产物。就像现在没人再用"记事本"写代码一样,用npm管理依赖,已经成了前端开发的标配。
为啥?因为现代前端工程化不是一个人的战斗:
- 要考虑团队协作
- 要考虑代码复用
- 要考虑打包优化
- 要考虑...(此处省略1万字)
最后最后
如果你就是想写个简单的页面,完全可以继续用传统方式。但如果你想往前端开发这条路走下去,npm这个坎,迟早要过。
就像我朋友说的:"不会npm的前端,就像不会开车的司机,虽然你可以一直坐地铁...但你确定要这样过一辈子?"
如果你觉得这篇文章对你有帮助,求求点赞关注,我是旷野,探索无尽技术!
对了,如果有人问你为什么要用npm,你就把这篇文章甩给他(手动狗头)