# 脚手架
# 脚手架核心价值
将研发过程:
- 自动化:项目重复代码拷贝/git 操作/发布上线操作
- 标准化:项目创建/git flow/发布流程/回滚流程
- 数据化:研发过程系统化、数据化,使得研发过程可量化
# vue 脚手架执行原理
- 在终端输入
vue create test - 终端解析出
vue命令 - 终端在环境变量中找到
vue命令 - 终端根据
vue命令链接到实际文件vue.js - 终端利用 node 执行
vue.js vue.js解析 command/optionsvue.js执行 command- 执行完毕,退出执行
# 脚手架开发流程
- 创建
npm项目 - 创建脚手架入口文件,最上方添加:
#!/usr/bin/env node - 配置
package.json,添加bin属性 - 编写脚手架代码
- 将脚手架发布到
npm
# Lerna 简介
Lerna (opens new window)是一个优化基于 git+npm 的多 package 项目的管理工具。
# 优势
- 大幅减少重复操作
- 提升操作的标准化
# Lerna 开发脚手架流程
- 脚手架项目初始化
- 初始化 npm 项目 >>> 安装 lerna >>> 初始化项目
lerna init
- 初始化 npm 项目 >>> 安装 lerna >>> 初始化项目
- 创建 package
- 创建 package
lerna create>>> 安装依赖lerna add>>> 链接依赖lerna link
- 创建 package
- 脚手架开发和测试
- 执行 shell 脚本
lerna exec>>> 执行 npm 命令lerna run>>> 清空依赖lerna clean>>> 重装依赖lerna bootstrap
- 执行 shell 脚本
- 脚手架发布上线
lerna version>>> 查看上版本依赖的所有变更lerna changed>>> 查看 difflerna diff>>> 项目发布lerna publish
# 脚手架本地 link 标准流程
链接本地脚手架
cd cli-dir npm link链接本地库文件
cd lib-dir npm link cd cli-dir npm link xlib取消链接本地库文件
cd lib-dir npm unlink cd cli-dir npm unlink xlib
# 理解npm link
npm link:将当前项目链接到 node 全局 node_modules 中作为一个库文件,并解析 bin 配置创建可执行文件npm link xlib:将当前项目中 node_modules 下指定的库文件链接到 node 全局 node_modules 下的库文件
# 理解npm unlink
npm unlink:将当前项目从 node 全局 node_modules 中移除npm unlink xlib:将当前项目中的库文件依赖移除