从0开始搭建一套脚手架cli工具(一)

简介: 从0开始搭建一套脚手架cli工具

目录


前端开发者都会用脚手架搭建vue、react项目,那么如何搭建一套自己的脚手架cli工具呢?

一、 脚手架用到的工具


image.png


二、初始化项目


  1. 初始化项目
npm init
  1. 新建bin文件夹,并在该文件夹下新建index.jsquestion.jscreate.js

  2. 配置初始化后生成的package.json文件
  3. npm link链接到全局

主要是为了方便测试,把npm link在安装在本地目录。执行npm link之前,在package.json中指定bin 指定名字以及文件地址(上面我们已经配置过了), 然后执行npm link(mac系统加sudo)。

5.初步测试

#!/usr/bin/env node需要固定在第一行,系统执行到这里后会沿着对应路径查找 node 并执行。


#! /usr/bin/env node
console.log('测试')

执行guilai-cli 命令

guilai-cli

输出:


说明我们初步测试完成啦


三、获取版本


通过process.argv可以以数组形式获取命令行参数,通过用户传来的不同参数来判断执行不同操作

#! /usr/bin/env node
program.version(require('../package.json').version);
program.parse(process.argv);
guilai-cli -V

输出:


四、安装依赖


默认安装最新版本的命令,启动后可能会有一系列报错,博主的插件版本不会报错,报错可按上图的版本

yarn add chalk commander download-git-repo fs-extra handlebars inquirer ora shelljs 

五、 inquirer实现问答模式


  1. 在bin文件夹下新建question.js文件。
  • fs-extra继承了fs的所有方法,并在此基础上进行了扩展,fse.existsSync判断项目是否重名
```javascript
const fse = require("fs-extra")
const create = [
  {
    name: 'conf',
    type: 'confirm',
    message: '是否创建新的项目?',
  }, {
    name: 'name',
    message: '请输入项目名称:',
    validate: function (val) {
      if (!val) {
        return '亲,你忘了输入项目的名称哦~'
      }
      if (fse.existsSync(val)) {
        return '当前目录已存在同名的项目,请更换项目名'
      }
      return true
    },
    //如果上面为false,则该步骤就不执行
    when: res => Boolean(res.conf)
  }, {
    name: 'desc',
    message: '请输入项目的描述:',
    when: res => Boolean(res.conf)
  },
]
module.exports = {
  create
}
  1. index.js文件中
    如果在刚开始的选项是否新建项目选择false时,answers.conf的值就为false,将不会继续向下执行。
const program = require('commander');
const inquirer = require('inquirer');
const question = require("./question");
const initAction = () => {
  inquirer.prompt(question.create).then(answers => {
    if(answers.conf){
      console.log(answers)
      console.log('项目名称:', answers.name)//test
      console.log("正在拷贝项目,稍等-----")
    }
  })
}
program.version(require('../package.json').version);
program.command('init').description('创建项目').action(initAction);
program.parse(process.argv);


目录
相关文章
|
4月前
|
JavaScript 开发者
入职必会-开发环境搭建30-Vue-cli环境下载和安装
Vue CLI(Vue Command Line Interface)是一个官方发布的用于快速搭建基于 Vue.js 开发环境的工具。它可以帮助开发者快速搭建 Vue 项目、进行项目配置、构建等操作,让开发过程更加高效。
|
4月前
|
开发工具 数据安全/隐私保护 git
Lerna 使用教程 -- 开发脚手架的流程和核心命令详解
Lerna 使用教程 -- 开发脚手架的流程和核心命令详解
198 0
|
6月前
|
缓存 监控 JavaScript
环境搭建:Vue项目的开发环境和生产环境配置
【4月更文挑战第23天】本文指导Vue开发者配置开发和生产环境,强调了两者目的和特点。开发环境用于编写、测试和调试,侧重快速反馈和调试工具;生产环境注重稳定性、效率和安全性,需进行代码优化、错误处理和日志监控。配置步骤包括安装Node.js和npm,使用Vue CLI,配置Webpack、热重载和源码映射。生产环境要实现代码分割、压缩、最小化,启用CSP、HTTPS,优化静态资源和缓存策略。环境配置应随项目发展和技术进步持续优化。
758 0
|
6月前
|
JavaScript 前端开发 容器
脚手架cli3
脚手架cli3
|
6月前
|
JavaScript 前端开发 Java
Vue CLI脚手架安装、搭建、配置 和 CLI项目分析
Vue CLI脚手架搭建和分析 详解。
145 0
|
11月前
|
资源调度 JavaScript 前端开发
vue-cli安装与搭建SPA项目
vue-cli安装与搭建SPA项目
89 0
|
开发框架
从0搭建Vue3组件库(十):如何搭建一个 Cli 脚手架
本篇文章将实现一个名为create-easyest脚手架的开发,只需一个命令npm init easyest就可以将整个组件库开发框架拉到本地。
328 0
|
JavaScript 前端开发 开发工具
01-Vue简介及开发工具安装
01-Vue简介及开发工具安装
|
设计模式 前端开发 JavaScript
vee-cli脚手架实践(下)
vee-cli脚手架实践
69 0
|
前端开发 JavaScript 搜索推荐
vee-cli脚手架实践(上)
vee-cli脚手架实践
82 0