5-5 命令行交互原理
摘要:1 学习路径 掌握 readline -- 输入流 events -- 实现 nodejs 事件流 stream -- 输入输出流 ansi-escapes -- 实现命令行的特殊显示 rxjs -- 响应式模型库 掌握命令行交互的实现原理,并实现一个可交互的列表 分析 inquirer 源码掌握其
阅读全文
posted @
2022-12-30 11:38
pleaseAnswer
阅读(123)
推荐(0) 编辑
5-4 项目创建 + 模板下载
摘要:1 脚手架初始化项目模板开发 1.1 手动创建项目模板 mkdir zmoon-cli-dev-template cd ./zmoon-cli-dev-template npm init -y mkdir zmoon-cli-dev-template-vue3 cd ./zmoon-cli-dev-
阅读全文
posted @
2022-12-30 11:33
pleaseAnswer
阅读(33)
推荐(0) 编辑
5-3 掌握 egg.js + 云 mongodb
摘要:1 egg.js 1.1 初始化 初始化和项目启动方法 # 初始化 $ mkdir egg-example && cd egg-example $ npm init egg --type=simple # 实际上执行的是 npm i create-egg $ npm i # 项目启动 $ npm r
阅读全文
posted @
2022-12-30 11:32
pleaseAnswer
阅读(63)
推荐(0) 编辑
5-2 项目创建前准备阶段
摘要:1 项目创建前准备阶段 exec() { try { // 1. 准备阶段 this.prepare() // 2. 下载模板 // 3. 安装模板 } catch(e) { log.error(e.message) } } prepare() { // 1. 判断当前目录是否为空 // 1.1 询
阅读全文
posted @
2022-12-30 11:21
pleaseAnswer
阅读(27)
推荐(0) 编辑
5-1 脚手架创建项目流程架构设计
摘要:1 一周导读 1.1 标题 完成 imooc-cli 脚手架创建项目流程开发 1.2 将收获什么 命令行交互方法 服务端框架 eggjs 的应用和 API 开发方法 eggjs 集成云 mongodb 1.3 主要内容 脚手架项目创建功能架构设计 通过命令行交互获取项目基本信息 egg.js + 云
阅读全文
posted @
2022-12-30 11:18
pleaseAnswer
阅读(38)
推荐(0) 编辑
4-4 child_process 库源码分析
摘要:疑问和收获 exec 和 execFile 到底有什么区别? 为什么 exec/execFile/fork 都是通过 spawn 实现的,spawn 的作用到底是什么? 为什么 spawn 调用后没有回调,而 exec 和 execFile 能够回调? 为什么 spawn 调用后需要手动调用 chi
阅读全文
posted @
2022-11-25 15:46
pleaseAnswer
阅读(50)
推荐(0) 编辑
4-3 基于缓存 + Node 多进程实现动态命令加载和执行
摘要:1 node 多进程开发 1.1 进程(在操作系统中如何查看进程的嵌套关系) 官方文档 1. 什么是进程(Process) 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 进程的概念主要有两点 进程是一个实体, 每一个进程都有它自己的地址
阅读全文
posted @
2022-11-25 15:18
pleaseAnswer
阅读(95)
推荐(0) 编辑
4-2 脚手架执行流程开发 -- 封装通用的 Package & Commond 类
摘要:1 脚手架命令动态加载功能架构设计 1.1 指定本地调试文件路径 targetPath core>cli>bin>index.js function registerCommand() { program .name(Object.keys(pkg.bin)[0]) .usage('<command
阅读全文
posted @
2022-11-25 15:04
pleaseAnswer
阅读(78)
推荐(0) 编辑
4-1 脚手架命令注册 & 高性能脚手架架构设计
摘要:1 一周导读 1.1 标题 基于 Commander 完成脚手架命令注册和命令执行过程开发 1.2 将收获什么 如何设计高性能脚手架 Node 多进程开发 javascript 面向对象的实战技巧 1.3 主要内容 图解高性能脚手架架构设计方法 封装通用的 Package 和 Command 类 基
阅读全文
posted @
2022-11-25 14:35
pleaseAnswer
阅读(50)
推荐(0) 编辑
3-2 脚手架核心流程开发
摘要:1 脚手架准备阶段过程开发 1.1 脚手架框架代码拆包 + import-local import-local core > cli > bin > index.js #! /usr/bin/env node const importLocal = require('import-local') i
阅读全文
posted @
2022-10-09 14:56
pleaseAnswer
阅读(70)
推荐(0) 编辑
3-1 脚手架架构设计和技术方案设计全过程
摘要:1. 一周导读 1.1 标题 脚手架需求分析和架构设计,核心流程开发 1.2 将收获什么 架构设计和技术方案设计全过程 脚手架执行核心流程和 commander 框架 如何让 Node 项目支持 ESModule 1.3 主要内容 脚手架需求分析和架构设计 脚手架模块拆分策略和 core 模块技术方
阅读全文
posted @
2022-10-09 14:52
pleaseAnswer
阅读(305)
推荐(0) 编辑
2-2 脚手架框架搭建
摘要:1 Lerna 简介 是一个优化基于 git + npm 的 多package 项目的管理工具 1.1 原生脚手架开发痛点 痛点一:重复操作 多 Package 本地 link 多 Package 依赖安装多 Package 单元测试 多 Package 代码提交 多 Package 代码发布 痛点
阅读全文
posted @
2022-09-07 10:34
pleaseAnswer
阅读(50)
推荐(0) 编辑
2-1 脚手架开发入门
摘要:1 一周导读 1.1 收获 脚手架的实现原理 Lerna 的常见用法 架构设计技巧和架构图绘制方法 1.2 主要内容 学习如何以架构师的角度思考基础架构问题 多 Package 项目管理痛点和解决方案,基于 Lerna 脚手架框架搭建 imooc-cli 脚手架需求分析和架构设计,架构设计图 1.3
阅读全文
posted @
2022-09-07 10:16
pleaseAnswer
阅读(114)
推荐(0) 编辑
1-1 需求分析和架构设计
摘要:1 一周导读 主要内容 学习如何以架构师思维分析需求 由浅入深的需求分析 架构设计-多项目的关系 核心数据结构设计 写《技术方案设计》文档 关键词 流程图 -- 分析需求的工具 全局思维、整体思维、闭环思维 -- 架构师思维来分析需求 业务组件库 -- 独立拆分出来,复用 自定义事件统计 -- 业务
阅读全文
posted @
2022-09-06 17:47
pleaseAnswer
阅读(229)
推荐(0) 编辑