为 vite 项目自动添加 eslint 和 prettier

190 阅读1分钟

1.代码准备

  • 可以用 npm init vite 或者 yarn create vite 生成一个 vite 的项目

  • 在这个vite项目的基础上,再执行 npm init vite-pretty-lint 或者 yarn create vite-pretty-lint

  • vite-pretty-lint代码仓库: github.com/tzsk/vite-p…

2.vite-pretty-lint中用到的插件简单介绍

  • nanospinner Node.js 最简单、最小的终端微调器
  • gradient-string 终端输出中漂亮的颜色渐变
  • chalk 终端字符串样式正确
  • Enquirer 时尚的 CLI 提示,用户友好、直观且易于创建。

3.代码结构

image.png

  • 代码执行流程
image.png

4.代码解析

4.1 入口

run().catch((e) => {

console.error(e);

});

4.2弹出命令,选择项目类型和包管理工具

image.png

projectType选择项目类型: 【react-ts】 【react】【vue-ts】 【vue】 

packageManager选择项目包管理方式:【npm】 【yarn】

4.3根据命令行的参数,读取模版文件

//依赖的包
const commonPackages = [

'eslint',

'prettier',

'eslint-plugin-prettier',

'eslint-config-prettier',

'vite-plugin-eslint',

];

image.png

const viteConfig = viteEslint(fs.readFileSync(viteFile, 'utf8')); viteEslint方法将配置文件内容,转化成ast

image.png

4.4执行重写eslint和prettier配置文件

image.png

总结

  • npm init这里的原理不是很清楚,大家可以参考 若川的文章[ create-vue 文章 npm init,源码共读中的第9期。
  • AST这里还需要在深入了解。