这是我参与「第四届青训营」笔记创作活动的第5天
1 Node.js的应用场景
首先是前端工程化的场景。早期 ajax,jquery比较流行的时候,我们直接在页面中引入需要的lib即可。后续随着模块化、transpile 逐渐成熟、需求逐渐增多,对后端能力的需求也逐渐强烈。也就是说,Node.js赋予了js开发者在浏览器外运行代码的能力,加速催生了这些项目的出现。
其次是使用Nodejs开发Web服务端应用,也就是后端服务。
最后要再说下Electron应用,这里不只是指electron,还包括 nw.js..;这个场景在较大的企业里面非常常见。
前端工程化
- Bundle: webpack, vite, esbuild, parcel
- Uglify: uglifyjs
- Transpile: bablejs,typescript
- 其他语言加入竞争:esbuild, parcel, prisma
- 现状:难以替代
Web服务端应用
- 学习曲线平缓,开发效率较高
- 运行效率接近常见的编译语言
- 社区生态丰富及工具链成熟(npm)
- 与前端结合的场景会有优势(SSR)
Electron 跨端桌面应用
- 商业应用: vscode, slack, discord, zoom大型公司内的效率工具
- 现状:大部分场景在选型时,都值得考虑
NPM 使用介绍
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。命令如下,出现版本提示表示安装成功:
$ npm -v
2.3.0
2 Node.js的运行结构
Node.js 运行时结构- V8, libuv
- V8:JavaScript Runtime,诊断调试工具(inspector)
- libuv: eventloop(事件循环),syscall(系统调用)
- 举例:用node-fetch发起请求时.….
简单来看,Node.js 就是运行在服务端的 JavaScript,今天只是一个入门,期望后面可以好好用它