准备工作
首先准备一个模板,上传至github或者gitlab,本文以github为例
需要使用的第三方库
- babel-cli/babel-env: 语法转换
- commander: 命令行工具
- download-git-repo: 用来下载远程模板
- inquirer: 交互式命令行工具
- ora: 显示loading动画
- chalk: 修改控制台输出内容样式
- log-symbols: 显示出 √ 或 × 等的图标
实现功能
- xiami、xiami -h、xiami –help可显示帮助信息
- xiami init templateName projectName 可从xiamijun/templateName 的远程仓库拉取模板
手写脚手架
新建空项目,npm init
安装依赖
npm install babel-cli babel-env chalk commander download-git-repo ini inquirer log-symbols ora –save
目录结构
1 | ├── bin |
package.json添加如下字段:
1 | "bin": { |
babel 配置
.bablerc文件:
1 | { |
src/main.js
1 | import program from 'commander' |
src/index.js
1 | // 主的流程控制 |
src/init.js
1 | import { |
src/utils/get.js
1 | import {URL} from './constants' |
src/utils/constants.js
1 | import {version} from '../../package.json' |
bin/www
1 | #! /usr/bin/env node |
调试
运行npm run watch 进行打包
运行npm link将当前的xiami命令链接到全局环境
发布
- 首先切换至 https://registry.npmjs.org/ ,使用nrm或者npm config set
- 登录npm,输入npm login,输入用户名、密码、邮箱
- npm publish