• Home
  • All Posts
  • Tags
  • About
  • Atom feed
SUIBU's BLOG

cli

脚手架模块拆分策略 July 5, 2021 less than 1 minute read

核心流程:core

执行准备 prepare

检查版本号 检查node版本 检查root启动 检查用户主目录 检查入参 检查环境变量 检查是否为最新版本 提示更新

命令注册 registerCommand

注册init命令 注册publish命令 注册clean命令 支持debug

命令执行

命令:commands

初始化
发布
清除缓存

模型层:models

command 命令
project 项目
component 组件
npm 模块
git 仓库

支撑模块:utils

git操作
云构建
工具方法
API请求
Git API
read more
yargs工作流程 July 5, 2021 3 minute read

yargs 脚手架开发框架

脚手架构成

bin:package.json中配置bin,npm link本地安装 command:命令 options:参数 文件顶部增加 #!/usr/bin/env node

脚手架初始化流程

构造函数yargs()以及常用方法 脚手架参数解析方法:hideBin(process.argv)/Yargs.parse(argv, optoins) 命令注册方法yargs.command()/yargs.command({})

yargs初体验

#!/usr/bin/env node const yargs = require('yargs/yargs') const { hideBin } = require('yargs/helpers') //hideBin 用于解析参数 const arg = hideBin(process.argv) // yargs的使用 yargs(arg).argv; 

得出的结果是:

➜ core git:(master) ✗ i18n-fe --help 选项: --help 显示帮助信息 [布尔] --version 显示版本号 [布尔] 
完善脚手架帮助文档
const cli = yargs(arg); cli .strict() // 严格模式,若是出现不匹配的参数,会出现错误提示 .usage('Usage:i18n-fe [command] <options>') .demandCommand(1, "A command is required. Pass --help to see all available commands and options.") // demandCommand(至少要输入n个command,提示文案) .alias('h', 'help')... read more
					
lerna工作流程 July 5, 2021 1 minute read

lerna 的体验

为什么使用 lerna

lerna 是基于git+npm的多package项目管理工具 工程化思想的两个维度:1、大幅减少重复操作 2、提升操作的标准化。以效能为核心。

实现原理

1、通过import-local预先调用本地lerna命令 2、通过yargs生成脚手架,先注册全局属性,在注册命令,最后通过parse方法解析参数 3、lerna命令注册时需要传入builder和handler两个方法,builder方法用户注册命令专属的options,handler用来处理命令的业务逻辑 5、lerna通过配置npm本地依赖的方法来进行本地开发,具体写法是在package.json的依赖中写入:file:your-local-module-path,在lerna publish时会自动将该路径替换

脚手架项目初始化

1、 初始化npm项目

mkdir fe-cli && cd fe-cli npm init -y 

2、 安装lenrna

yarn add lerna -D 

3、 lerna init 初始化项目 将会在该文件夹下生成 packages文件夹、lerna.json

lerna init 

创建 package

1、lerna create 创建 package

lerna create core 

会在packages下创建名为core的npm包 2、lerna add 安装依赖

lerna add react 将会把 react 安装进 packages 下所有的包中 lerna add react packages/core 将会把 react 安装进指定的 packages/包中 https://github.com/lerna/lerna/tree/main/commands/add#readme 

3、lerna... read more

node

脚手架模块拆分策略 July 5, 2021 less than 1 minute read

核心流程:core

执行准备 prepare

检查版本号 检查node版本 检查root启动 检查用户主目录 检查入参 检查环境变量 检查是否为最新版本 提示更新

命令注册 registerCommand

注册init命令 注册publish命令 注册clean命令 支持debug

命令执行

命令:commands

初始化
发布
清除缓存

模型层:models

command 命令
project 项目
component 组件
npm 模块
git 仓库

支撑模块:utils

git操作
云构建
工具方法
API请求
Git API
read more
yargs工作流程 July 5, 2021 3 minute read

yargs 脚手架开发框架

脚手架构成

bin:package.json中配置bin,npm link本地安装 command:命令 options:参数 文件顶部增加 #!/usr/bin/env node

脚手架初始化流程

构造函数yargs()以及常用方法 脚手架参数解析方法:hideBin(process.argv)/Yargs.parse(argv, optoins) 命令注册方法yargs.command()/yargs.command({})

yargs初体验

#!/usr/bin/env node const yargs = require('yargs/yargs') const { hideBin } = require('yargs/helpers') //hideBin 用于解析参数 const arg = hideBin(process.argv) // yargs的使用 yargs(arg).argv; 

得出的结果是:

➜ core git:(master) ✗ i18n-fe --help 选项: --help 显示帮助信息 [布尔] --version 显示版本号 [布尔] 
完善脚手架帮助文档
const cli = yargs(arg); cli .strict() // 严格模式,若是出现不匹配的参数,会出现错误提示 .usage('Usage:i18n-fe [command] <options>') .demandCommand(1, "A command is required. Pass --help to see all available commands and options.") // demandCommand(至少要输入n个command,提示文案) .alias('h', 'help')... read more
					
lerna工作流程 July 5, 2021 1 minute read

lerna 的体验

为什么使用 lerna

lerna 是基于git+npm的多package项目管理工具 工程化思想的两个维度:1、大幅减少重复操作 2、提升操作的标准化。以效能为核心。

实现原理

1、通过import-local预先调用本地lerna命令 2、通过yargs生成脚手架,先注册全局属性,在注册命令,最后通过parse方法解析参数 3、lerna命令注册时需要传入builder和handler两个方法,builder方法用户注册命令专属的options,handler用来处理命令的业务逻辑 5、lerna通过配置npm本地依赖的方法来进行本地开发,具体写法是在package.json的依赖中写入:file:your-local-module-path,在lerna publish时会自动将该路径替换

脚手架项目初始化

1、 初始化npm项目

mkdir fe-cli && cd fe-cli npm init -y 

2、 安装lenrna

yarn add lerna -D 

3、 lerna init 初始化项目 将会在该文件夹下生成 packages文件夹、lerna.json

lerna init 

创建 package

1、lerna create 创建 package

lerna create core 

会在packages下创建名为core的npm包 2、lerna add 安装依赖

lerna add react 将会把 react 安装进 packages 下所有的包中 lerna add react packages/core 将会把 react 安装进指定的 packages/包中 https://github.com/lerna/lerna/tree/main/commands/add#readme 

3、lerna... read more

tool

git July 3, 2021 less than 1 minute read
将commit从功能分支中移除
➜  suibu.github.io git:(master) git revert commitID
将commit放入功能分支
➜  suibu.github.io git:(master) git cherry-pick commitID
➜  suibu.github.io git:(master) git add .
➜  suibu.github.io git:(master) git commit -m "message..."
合并多个commit
git rebase --interactive --keep-empty commitID
# 解决完冲突后
git add .
## 无需执行 git commit
git rebase --continue
read more
vim June 30, 2021 less than 1 minute read
新增
删除
编辑
read more
vscode 快捷键 June 30, 2021 less than 1 minute read

搜索

按内容搜索

comamnd + p

按文件名搜索

command + shift + f

编辑

光标快速位移到行头/尾部

command + ->/<-

选中当前行

shift + command + ->/<-

光标快速位移(按单词)

alt + ->/<-

按单词选中内容

shift + alt + ->/<-

多行选择

shift + ⬆️/⬇️

位移(选中区域)

alt + ⬆️/⬇️

read more
  • cli (5)
  • node (4)
  • tool (3)

    2021 © SuiBu

    Posts
    Tags
    About