当我们在开发的时候,时常会在创建项目的时候重复很多操作,比如下载相同的依赖(锁定依赖版本)、封装网络请求、封装路由、配置代码提示/检查、配置vite/webpack打包、配置自动导入(auto-import)、配置项目基础结构、注册全局指令等,有非常多重复的步骤其实都是可以被省略的,或者说开发者应该专注于业务的实现,而不是在这些上浪费大量的时间,所以我们可以将以上重复且关键的步骤提炼出来放在一个仓库里,然后创建一个属于我们自己的脚手架并放在npm上,通过全局安装这个脚手架,使用脚手架指令就可以直接下载我们存在仓库里面的基础模版了。
一、创建脚手架
1、初始化脚手架
npm init -y
2、创建入口文件
mkdir bin
cd bin
touch www.js
//然后进入 www.js 文件 ,将下列代码粘贴上去
#! /usr/bin/env node
require('../index.js')
3、配置package.json的入口文件
//将以下代码贴入 package.json中
"bin": "bin/www",
4、在根目录创建index.js并软链接到全局
touch index.js
cnpm link
5、安装依赖(工具)
"axios": "^0.26.1",
"chalk": "^4.0.0",
"commander": "^9.0.0",
"download-git-repo": "^3.0.2",
"figlet": "^1.5.2",
"fs-extra": "^10.0.1",
"gitee-repo": "^0.0.2",
"inquirer": "^8.2.1",
"ora": "^5.0.0"
6、创建配置文件
我已经将所要配置的文件都放在代码里面的,直接贴进去就行,当然也可以在我的基础上加以改造,可以让脚手架变的更加完善。
mkdir lib
touch api.js create.js Creator.js util.js
//index.js
const program = require("commander");
const chalk = require("chalk");
const figlet = require("figlet");
program
.command("create <project-name>") //增加创建指令
.description("create a new project") //添加描述信息
.option("-f, --force", "overwrit