当前位置: 首页 > news >正文

开发一个简单的脚手架

脚手架的作用:前端脚手架本质是项目快速生成 + 规范 + 工具集成的一套启动模板,可以提高开发效率

脚手架的核心依赖:

commander:解析终端命令

inquirer::提供交互式问答,收集用户配置

fs-extra:文件操作(创建文件夹,文件等)

ora:美化终端loding动画

chalk:给文字上色

目录结构:

bin/index.js:脚⼿架终端命令入口

#!/usr/bin/env node import '../src/main.js'

#!/usr/bin/env node :shebang指令,告诉系统使⽤Node.js执⾏该⽂件,必须写在第⼀⾏,否则脚⼿架命令⽆法运⾏

package.json:项目配置、依赖、命令声明

{ "name": "my-vue-cli", "version": "1.0.0", "main": "index.js", "type": "module", "bin": "./bin/index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "description": "", "dependencies": { "chalk": "^5.6.2", "commander": "^14.0.3", "fs-extra": "^11.3.4", "inquirer": "^13.3.0", "ora": "^9.3.0" } }

注意要添加:

"bin": "./bin/index.js":注册全局终端命令my-vue-cli ,指定命令入口文件为./bin/cli.js

"type": "module": 声明项⽬采⽤ESM模块化规范,使⽤import/export 替代 require/module.exports

src/main.js:脚⼿架程序主入口

import { Command } from 'commander/esm.mjs' import { registerCreate } from './commands/create.js' const program = new Command() // 定义 cli 基础信息 program .version('1.0.0') .name('vue3-ts-cli') .description('vue3+ts+vite的前端脚手架') registerCreate(program) program.parse(process.argv)

说明:

1. 初始化commander 程序实例,配置脚⼿架版本( my-cli -V/--version 可查看)

2. 注册create 核心命令,将命令逻辑解耦到comma

http://www.jsqmd.com/news/478682/

相关文章:

  • TestPilot - 智能测试用例生成工具
  • 什么是DAS分布式光纤声波传感系统?原理与应用解析
  • 大数据领域Doris在医疗科技领域的临床数据分析
  • Flutter 三方库 hotp 的鸿蒙适配指南 - 实现 RFC 4226 标准双因素认证、在 OpenHarmony 上打造极致安全的动态令牌实战
  • 汽油生产
  • 必看!AI拓客软件源头厂家哪家强?
  • Java大厂面试实录:谢飞机的搞笑面试之旅
  • Python当中ascii码与字母的相互转换
  • 深度学习之循环神经网络RNN
  • VMware安装RedHat Linux9全攻略
  • LeeCode4.寻找两个正序数组的中位数。小白都能懂。
  • JAVA基础二
  • ContentProvider与Uri权限:跨应用数据共享
  • 攻防世界 misc题心仪的公司
  • Linux:进程调度
  • 软件测试定义、目的、调试、需求概念、软件生命周期与测试流程
  • 学习率调度的艺术:从Warmup到余弦退火,掌握深度学习的训练节奏
  • AI 辅助编程阶段化开发 SOP
  • 大数据安全必修课:数据隐私保护的7大核心原则
  • 56767786
  • 工业缺陷检测的新范式:2025-2026年零样本检测技术全景扫描
  • 51单片机的【智能火灾报警系统】仿真设计
  • 北京营养自愈力专家亲测分享:这样找最靠谱!
  • 代码上传到gitee
  • 我不知道起什么我就是找个地方说话
  • 量化开发实战手册·第1篇:数据源选型指南——如何为你的策略找到最合适的行情接口?
  • Flutter 三方库 flutter_localized_locales 鸿蒙适配指南 - 实现工业级全球化多语言映射与区域感知实战
  • pikachu靶场——SQL-Inject—2(Kali系统)占位符
  • C++ 标准库提供了一组丰富的输入/输出功能
  • 腾讯六宫格验证码破解