create-vite 源码阅读

本文详细介绍了create-vite的源码,包括使用minimist解析命令行参数,prompts进行交互式提示,kolorist实现彩色输出。深入解析了`create-vite/index.js`,探讨了配置项目名、处理文件夹操作及模板写入等步骤,同时还讲解了Node.js中`resolve`和`join`的区别。文章末尾推荐了一本关于Vue的实用技巧文档。
摘要由CSDN通过智能技术生成

前言

create-vite 主要是用于创建一个项目并根据用户选择配置的template将模板文件写入当前创建的目录中。 vite提供了多个模板及其ts版本。

重要插件

使用minimist解析命令行参数使用prompts包来实现命令行指引配置的功能。使用kolorist包实现不同颜色的关键词。

来看一下这些包的简单使用,方便后续查看create-vite中的源码

minimist

通过process.argv获取命令行参数的字符串数组,前两个值是固定的,第一个是node程序路径,第二个则是当前执行的文件路径。之后的才是输入的各种参数

const { argv } = process;
console.log('argv', argv); 
> node src/index.js-v vv -f

argv ['/usr/local/Cellar/node@16/16.18.1/bin/node','/Users/zgm/Documents/Web/node/node-js/src/index.js','-v','vv','-f'] 

使用minimist后可以把输入的参数进行解析,使用_保存命令中的各种参数,当匹配到-或者--字符时忽略后边的所有的参数。---字符后边的命令会添加到对象中,当命令后边有参数(非options),那么该命令的值就是后边的参数,否则值为true

const argv = minimist(process.argv.slice(2), { string: ['_'] }); // _ 中的属性会被转为字符串类型
console.log(argv); 
> node src/index.js-v vv -f

{ _: [], v: 'vv', f: true } 

源码:

const argv = minimist(process.argv.slice(2), { string: ['_'] });
console.log(argv); 
> node src/index.js _asdf 123 321-v vv -f

{ _: [ '_asdf', '123', '321' ], v: 'vv', f: true } 

prompts

轻量级,美观且用户友好的交互式提示库。

单个提示的传入一个对象即可

const prompts = require('prompts');

(async () => {const response = await prompts({type: 'text',name: 'weather',message: 'What is the weather today?',});console.log(response);
})(); 

多个就需要传入数组

const prompts = require('prompts');

(async () => {const response = await prompts([{type: 'text',name: 'weather',message: 'What is the weather today?',},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值