课程章节:
第二周 第二章 2-10 脚手架命令注册和参数解析
第二周 第二章 2-11 脚手架项目发布
第二周 第三章 3-1 本章的收获是什么,难点是什么?
第二周 第三章 3-2 原生脚手架开发痛点分析
第二周 第三章 3-3 本章重点:lerna简介及脚手架开发流程
课程讲师: Sam、张轩
课程内容:
2-10 脚手架命令注册和参数解析
- 注册一个命令,init
- 解析参数,–version
monster-test/bin/index.js
#!/usr/bin/env node
const lib = require('monster-test-lib')
const argv = require('process').argv
const command = argv[2];
const options = argv.slice(3);
if (options.length > 1) {
let [option, param] = options;
option = option.replace('--', '')
console.log(options, option, param)
if (command) {
if (lib[command]) {
lib[command]({ option, param })
} else {
console.log('请输入正确的命令')
}
} else {
console.log('请输入命令')
}
}
if (command.startsWith('--') || command.startsWith('-')) {
const globalOption = command.replace(/--|-/g, '');
if (globalOption === 'version' || globalOption === 'V') {
console.log('1.0.0');
}
}
monster-test-lib/lib/index.js
module.exports = {
init ({ option, param }) {
console.log('执行init流程', option, param)
}
}
2-11 脚手架项目发布
发布步骤
- 先将两个项目分别
npm unlink
,删除本地项目的全局注册 - 修改项目版本号
npm publish
发布 - 在没有本地项目的目录下安装
npm install -g monster-test
- 测试安装的monster-test命令
3-1 本章的收获是什么,难点是什么?
- 如何去管理一个复杂的JavaScript项目
- Lerna简介
- Lerna源码分析
- Lerna源码精读
- 基于Lerna设计简历
3-2 原生脚手架开发痛点分析
痛点一:重复操作
- 多Package本地link
- 多Package依赖安装
- 多Package单元测试
- 多Package代码提交
- 多Package代码发布
痛点二:版本一致性
- 发布时版本一致性
- 发布后相互依赖版本升级
Package越多,管理复杂度越高
3-3 本章重点:lerna简介及脚手架开发流程
Lerna简介
Lerna是一个优化基于git+npm的多package项目管理工具。
优势
- 大幅减少重复操作
- 提升操作的标准化
Lerna是架构优化的产物,它揭示了一个架构的真理:项目复杂度提升后,就需要对项目进行架构优化。架构优化的主要目标往往都是以效能为核心。
官网
案例
使用Lerna管理的大型项目
- babel:https://github.com/babel/babel
- vue-cli: https://github.com/vuejs/vue-cli
- create-react-app: https://github.com/facebook/create-react-app
Lerna 开发脚手架流程(重点)
课程收获:
今天开始体系课学习,课程买了好久了,从今天开始我要一步步把它学完!感谢慕课网开设了这个课程,让我有了更好的提升!前端架构师之路从此开启,好好学习,天天向上!
课程截图: