前端需要掌握多少Node.js?

昨天下午,来了个刚毕业的学弟,很认真地跑过来问我:"哥,我看网上好多人都说前端要学Node,我到底要学到什么程度啊?是不是得把Express、Koa那些都搞会了才能找到好工作?"

看着他一脸焦虑的样子,我想起了几年前的自己。

那时候Next.js刚火起来,前端的边界一下子就模糊了,我也很慌,觉得再不学后端就要被淘汰了。于是跑去啃Express的源码,研究Koa的中间件,折腾了半天,结果发现日常工作里,好像也用不太上,慢慢就忘了。

现在干了八年,也带了个小团队,回头再看这个问题,我有了点不一样的想法。

我首先跟我们组那个弟弟说的就是,你得先搞明白,我们前端学Node,目的不是为了去抢后端同学的饭碗。

我们学它,是因为我们整个前端的体系------你用的Webpack, Vite, ESLint, Babel, pnpm------全都是建立在Node.js这个地基上的。你不懂地基,楼盖高了心里就会发虚。

所以我觉得,有些东西是绕不开的,是你作为一个现代前端工程师,必须掌握的基本功。

比如package.json你肯定得门儿清吧?dependenciesdevDependencies搞混了,那是要出生产事故的。还有scripts,你怎么跑项目,怎么打包,不都在那里面吗?这都是基础中的基础。

还有模块化,CommonJS和ESM那点破事儿,虽然很烦,但你必须得懂。不然哪天Vite或者Webpack报个require is not defined的诡异错误,你都不知道从哪下手查。path模块也一样,我CR代码的时候,现在还经常看到有同学在配置文件里手动拼接路径字符串,比如'../' + '/src',我一看就头大,跟他说一定要用path.resolve或者path.join,不然哪天代码跑到Windows上就挂了。

把这些,再加上fs读写个文件(比如写个小脚本自动生成些模板代码)、process.env搞明白环境变量,我觉得你作为一个前端,就已经及格了,日常开发绝对够用。

但想拿高薪,想成为团队里能扛事儿的高级工程师,那肯定不够。


机会

技术大厂→看机会,前端-测试-后端,待遇和稳定性还不错,感兴趣的可以试试~


高级体现在哪?体现在你能解决一些"问题"。

最常见的就是跨域。本地开发localhost:5173请求测试环境的API,肯定跨域啊。这时候你总不能天天在群里@后端,让他给你加白名单吧?自己用Vite的proxy,或者顺手用Express快速起个代理服务,几行代码就搞定了。这事儿,就得会。

还有就是现在流行的Next.js, Nuxt这些元框架。你说它是前端还是后端?它都有。你在getServerSideProps或者一个server route里写的代码,那就是实打实地跑在Node环境里的。你不懂Node,那你怎么调试它,怎么理解它的生命周期和执行环境?所以你看,技术的发展,是逼着你往前走的。

我们团队之前为了提效,我还让组里的同学写过一些简单的CLI工具,比如一个自动根据API的Swagger文档,生成TypeScript类型定义的小脚本。这就是典型的进阶能力了,能让你从一个业务开发者,开始具备工具开发者的思维。

再往上,就是专家或者架构师的层面了。比如我们常说的BFF(服务于前端的后端),你需要自己用Node.js去搭建一个中间层,去做接口的聚合、裁剪,甚至需要连数据库做一些操作。到了这个层面,你其实已经是一个前端驱动的全栈工程师了,你的能力边界已经非常宽了。但这对于大多数前端同学来说,可以作为长远目标,不必强求。

聊了这么多,其实我想说的核心就一个:不要为了学Node.js而学Node.js。

你的目的,不是为了在简历上多写一行熟悉Node.js全家桶,而是为了解决一个更完整的问题

是为了能独立搞定一个项目的工程化配置,是为了能解决团队的开发提效问题,是为了能驾驭一个全栈框架。

所以,别焦虑了。

先把手头那些package.jsonvite.config.js里的东西搞搞明白。然后,当你遇到下一个问题,发现它需要一点Node的知识才能解决时,再去学。

解决问题,永远是最好的老师。

大概就是这样吧,一点不成熟的个人看法,希望能帮到你。

------转载自:ErpanOmer

相关推荐
粉末的沉淀10 分钟前
css:制作带边框的气泡框
前端·javascript·css
p***h6431 小时前
JavaScript在Node.js中的异步编程
开发语言·javascript·node.js
N***73852 小时前
Vue网络编程详解
前端·javascript·vue.js
e***71672 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
程序猿小蒜2 小时前
基于springboot的的学生干部管理系统开发与设计
java·前端·spring boot·后端·spring
银空飞羽2 小时前
让Trae CN SOLO自主发挥,看看能做出一个什么样的项目
前端·人工智能·trae
Eshine、2 小时前
解决前端项目中,浏览器无法正常加载带.gz名称的文件
前端·vue3·.gz·.gz名称的js文件无法被加载
q***38513 小时前
TypeScript 与后端开发Node.js
javascript·typescript·node.js
用户47949283569153 小时前
别再当 AI 的"人肉定位器"了:一个工具让 React 组件秒定位
前端·aigc·ai编程
WYiQIU4 小时前
面了一次字节前端岗,我才知道何为“造火箭”的极致!
前端·javascript·vue.js·react.js·面试