在线客服

【源码共读】第35期 - 学到了为项目自动添加 eslint 和 prettier

adminadmin 报建百科 2024-04-24 168 29
【源码共读】第35期 | 学到了为项目自动添加 eslint 和 prettier

前言

  • 本文参加了由公众号@若川视野?发起的每周源码共读活动,点击了解详情一起参与。

  • 这是源码共读的第35期,链接:/post/711356… 。

  • git项目仓库地址

学习目标

  1. 了解如何给vite自动添加eslint和prettier
  2. 学习如何下载包到本地

如何使用

通过运行npm init vite-pretty-lint,选择vue和yarn一键安装(以vue框架和yarn为例);

阅读思路

  1. git clone github.com/tzsk/vite-p… 下载项目
  2. 打开package.json文件,通过bin找到入口文件路径lib/main.js
  3. 从main.js文件中看run()函数是主要执行入口

从上图可以看到主流程执行了以下几个关键操作:

  • 下载相关的包(通过child_process的exec子进程下载包);
  • 把相关包的规则组合生成相关的文件并写入到本地;
    • 一种json格式 .xxx.json : 这种比较好实现,组合成json格式的数据后 fs.writeFileSync(xxxx, JSON.stringify(eslint, null, 2));
    • 一种是js,ts等格式 vite.config.js:这种需要通过babel转化,先把js文件通过babel解析为ast数据格式,经过各种type判断整合数据,然后再通过Babel的transformFromAstSync方法转换成处理好的js文件,最后通过fs.writeFileSync(viteFile, viteConfig);写入到本地文件中;

相关包:

  • commonPackages = [ 'eslint', 'prettier', 'eslint-plugin-prettier', 'eslint-config-prettier', 'vite-plugin-eslint', ];

  • 相关文件写入:

    • .eslintrc.json
    • .prettierrc.json
    • .eslintignore
    • vite.config.js
  • 总之,vite 项目自动添加 eslint 和 prettier的本质把相关的包和通用文件及相关规则封装起来,通过终端命令后选择的方式,匹配出相应的包和相应的规则并下载到使用的当前项目的本地及文件写入当前项目中;

关于控制台命令的方式选择操作如何实现

import chalk from 'chalk'; // 主要用来改变console的颜色
import gradient from 'gradient-string'; // 炫彩风格的字符串  渐变色 可以和chalk结合起来一起使用
import { createSpinner } from 'nanospinner'; // Node.js 终端微调器,进度、成功、失败等状态友好展示,也可用 ora 代替
import enquirer from 'enquirer'; // cli终端友好提示库 类似与inquirerjs库

enquirer提供了cli终端相关的不同类型的选项,用来实现npm init vite-pretty-lint之后关于框架和下载工具的选择;

  • enquirer与inquirerjs库有何区别?
    • 使用场景:Enquirer 和 Inquirer.js 都可用于创建交互式命令行界面的工具。
    • 主要区别: Enquirer 更加轻量级, Inquirer.js 提供了更多的功能和更大的生态系统。

总结

  1. 学习到了通过 exec(npm install --save-dev xxx xxx, { cwd: projectDirectory }, (error) => {})的方式,代码自动下载相关包到对应的项目目录;

  2. 了解到项目中如何自动添加eslint和prettier

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!
代办报建

本公司承接江浙沪报建代办施工许可证。
联系人:张经理,18321657689(微信同号)。

喜欢0发布评论

29条评论

  • 指尖站群 发表于 3个月前

    论坛的人气越来越旺了!http://wap.tjjixi.com/

  • 指尖站群 发表于 3个月前

    管它三七二十一!http://ra99d2.szcf580.com/

  • 指尖站群 发表于 3个月前

    强,我和我的小伙伴们都惊呆了!http://id.zjchuzhou.com/

  • 指尖站群 发表于 3个月前

    以后要跟楼主好好学习学习!http://k3bf5m.htycad.com/

  • 指尖站群 发表于 3个月前

    楼主的帖子提神醒脑啊!http://tzjt.htycad.com/

  • 指尖站群 发表于 3个月前

    吹牛的人越来越多了!http://www.jsailitejz.com/

  • 指尖站群 发表于 3个月前

    宇宙第一贴诞生了!http://zunhua.viptor.cn/

  • 指尖站群 发表于 3个月前

    怪事年年有,今年特别多!http://dacddm.xxpullrod.com/

  • 指尖站群 发表于 3个月前

    楼主是一个神奇的青年!http://5nc0o7.msudio.com/

  • 指尖站群 发表于 3个月前

    这一年啥事没干,光研究楼主的帖子了!http://b2x7.msudio.com/

  • 指尖站群 发表于 3个月前

    好东西,学习学习!http://56d.sunshinegoes.com/

  • 游客 发表于 2个月前

    读了楼主的帖子,顿时马桶就通了。。。http://zcjy4.cn/news/57e099492.html

  • 游客 发表于 2个月前

    吹牛的人越来越多了!http://hdnn.cqyiyou.net/test/404608235.html

  • 游客 发表于 2个月前

    文章写太挺好了,真的值得推荐http://bbs.kdhlpt.com/article/5343578.html

  • 游客 发表于 2个月前

    今天是个特别的日子,值得纪念!http://og4sn8.qubaa.net

  • 游客 发表于 1个月前

    终于看完了,很不错!http://www.jiagu1.com/fei/bbswxm4di/

  • 局王长图表 发表于 1个月前

    这个帖子会火的,鉴定完毕!http://gd3.zjyjjy.cn

  • 游客 发表于 3周前

    我只看看不说话。。。http://akc46.njhaohai.com

发表评论

  • 昵称(必填)
  • 邮箱
  • 网址