NPM: 是 Node.js 默认的包管理工具
NRM:是 Node.js 源管理工具
NVM:Node.js 版本管理工具
我参与发布的NPM包为mk-form,它通过配置生成和验证复杂表单,简化前端表单开发流程;
二次开发copy-webpack-plugin,解决了运行后报错的问题,让项目成功在生产环境中完成构建。
1. package.json配置名称、版本、license等信息。
2. README.md编写包使用文档。
3. .gitignore过滤不需要发布的文件。
4. 登录NPM账户并执行npm publish发布。
SDK是给开发者使用的开发包。SDK开发流程与一般软件开发流程相比,更注重:
1. 简单易用的API设计。
2. 完善的使用文档。
3. 功能精炼,单一目的。
4. 版本管理与兼容。
5. 快速迭代更新。
异步编程是在完成一个任务时,允许程序执行其他任务,而不会造成程序等待。Node.js通过Callback实现异步IO,在IO阻塞时控制权交给事件循环,而不是等待IO完成。
异步流程控制:Koa采用了基于Promise的中间件处理方式,通过async/await语法提供更好的异步流程控制。这使得编写和管理异步代码更加简洁和可读,避免了回调地狱的问题。而Express则采用传统的回调函数风格,需要使用额外的工具库或技术来处理异步操作。
中间件系统:Koa的中间件系统相对更加精简和灵活。它采用了洋葱模型(onion model),允许开发者自由组合和定制中间件,以实现更细粒度的控制和处理请求。相比之下,Express的中间件系统相对更传统,提供了一组内置的中间件和路由系统,更适合简单和快速的开发。
错误处理:Koa在错误处理方面更加强大和灵活。它提供了一种机制来捕获和处理中间件链中的错误,并统一处理错误响应。这使得开发者能够更好地管理和处理应用程序中的错误情况。而Express在错误处理方面相对简单,需要开发者自己实现错误处理逻辑。
1. 更优雅的异步流程控制。Koa使用 async/await 和 Generator,让异步代码更像同步代码,易于阅读和维护。而Express需要嵌套多层回调来解决异步流程,难以维护。
2. 更优雅的错误处理。Koa使用try/catch捕获异步代码中的错误,简单易用。而Express需要在每个异步回调的第一个参数中定义错误处理逻辑,比较繁琐。
服务端渲染是在服务器生成HTML并返回给客户端。前端渲染是客户端根据数据动态渲染页面。在Node.js中实现服务端渲染需要注意:
1. 渲染视图模板并且输出HTML字符串。
2. 将数据预填充至HTML中。
3. 页面内资源路径等需要根据请求头中相对路径确定。
4. 客户端会重复渲染,需要在HTML中添加数据存储,在JS逻辑中判断是否需要再次渲染。
Nginx的工作模式有:静态服务、反向代理、负载均衡和动态缓存等。
不同模式的作用分别为:提供静态文件服务、转发请求至后端应用、实现请求分发与平衡、通过缓存提高访问速度。
1. 申请SSL证书或自签名证书。
2. 在Listen指令中指定HTTPS协议和证书路径。
3. 使用ssl_certificate和ssl_certificate_key指定证书和私钥路径。
缓存适用于访问频率高但内容变化少的场景,需要考虑:
1. 数据更新频率。
2. 页面个性化需求。
3. CDN与浏览器缓存。
4. 缓存方式与过期规则。
Docker与虚拟机的区别在于Docker通过容器技术可以直接运行应用,不需要引入操作系统映像。而虚拟机需要运行操作系统。Docker容器依赖镜像,镜像是容器运行时的只读模板。
Jenkins的主要功能是持续集成和持续交付。实现CI/CD需要安装:
1. Git插件:拉取代码。
2. Maven插件:构建Java项目。
3. Docker插件:构建Docker镜像。
4. Kubernetes插件:部署至K8S集群。
构建流水线是将整个软件交付过程编排在一起的自动化工具链。在Jenkins中通过:
1. 创建Pipeline项目。
2. 编写Jenkinsfile声明Pipeline流程。
3. 选择“Pipeline script from SCM”接管代码仓库中的Jenkinsfile。
4. 配置构建触发器为“Webhook trigger for Gitiles SCM”自动触发Pipeline。