hello, 大家好, 我是徐小夕, 之前和大家分享了很多可视化低代码以及前端工程化的技术实践和思考, 今天继续和大家分享一位技术小伙伴开源的非常有意思的脚手架—— yite-cli
.
后期笔者除了会定期分享主流的技术实践(包括前端可视化,工程化, 产品技术思想等), 也会抽出一部分精力帮助热爱开源小伙伴分享自己有意思的开源项目, 欢迎各位技术发烧友们推荐或者自荐, 让
3w+
程序员因你而变的更好.
yite-cli 是什么?
yite-cli
是一个基于 vite
深度封装 方便
、好用
、强大
的vue3
项目开发脚手架。
开源信息
- gitee 仓库:gitee.com/chenbimo/yi…
- github 仓库:github.com/chenbimo/yi…
- 文档地址:yicode.tech
作者自 2019
年开源至今,坚持不懈,默默耕耘。
如果作者的开源项目能够给你带来帮助和便利,可以给笔者的仓库点个 star
。
设计思路
主要用于解决以下几个问题:
- 直接使用
vite
,每个项目都需要配置一次。 - 项目的
开发依赖
不应该暴露到项目中。 - 不同的开发者导致的不够统一的使用方式。
所以,yite-cli
诞生了,有效地解决了这些问题。
项目架构
- yite-cli
- vite.config.js
- @unocss/transformer-compile-class
- @unocss/transformer-directives
- @unocss/transformer-variant-group
- @vitejs/plugin-vue
- @vue-macros/reactivity-transform
- @yicode-helper/yite-chunk
- @yicode-helper/yite-html
- @yicode-helper/yite-i18n
- @yicode-helper/yite-qrcode
- @yicode-helper/yite-router
- @yicode/commander
- @yicode/yidash
- copy-anything
- fast-glob
- fs-extra
- lodash-es
- merge-anything
- portfinder
- rollup-plugin-visualizer
- tiny-cookie
- unocss
- unplugin-auto-import
- unplugin-icons
- unplugin-vue-components
- vite
- vite-plugin-vue-devtools
- vue-i18n
- yoctocolors
如上所示,yite-cli
内置了 vite.config.js
文件,并提供了相当多的开发依赖。
这样,原本需要我们在项目中创建 vite.config.js
文件,并需要安装的相关依赖,就不需要我们在项目中安装了。
开发理念
开发项目,最重要的是什么?快!稳!准!
如何达到这个要求?
- 尽量少得提供选择的机会,比如:
css
预处理器只能用scss
! - 避免提早优化、过渡优化、沉迷优化!
- 项目结构、编程规范、代码写法,尽量统一不变!
java20
都出来了,为什么那么多企业守着 java8
不升级?
难道是因为他们傻吗?不,是因为他们,稳!
以不变,应万变!
稳定的技术架构远优于高级的、新的、流行的技术!
不过,yite-cli
的依赖都是最新的!
最新
+ 最稳
+ 持续迭代
项目宗旨
约定大于配置!
约定
大于 配置
是本项目的核心宗旨。
那么什么是 约定大于配置
呢?百科解释如下:
约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做出决定的数量,活得简单的好处,而又不失灵活性。
约定优于配置,并不是零配置或者完全没有配置,而是通过约定来减少配置!!!
用过 webpack
吗?从 0
让你搭建一个项目开发配置方案,你,烦不烦?怕不怕?慌不慌?
搭出来了,稳不稳?好不好?棒不棒?
呵呵。
yite-cli
脚手架,诞生于 2019
年的某个夏日蝉鸣的午后,几年以来,紧跟前端发展的脚步,逐步升级!
大量的项目实践,精心调配的开发味道,让你用起来,如鱼得水,信手拈来!
有哪些约定
- 仅支持使用
scss
语法,less
,stylus
都不支持。 - 图标库默认使用
icones
的1
万多个图标,妈妈再也不用担心我的图标不够用啦!
什么情况避免使用
- 路由数量大于
500
的中大型项目(yite-cli
未在此数量以上的项目实践过)。 - 对开发灵活性要求高的项目(
yite-cli
丢失部分灵活性,以求稳定性)。 - 需要动态路由的请不要使用(动态路由还需研发)
- 目前只支持单页应用开发(
ssg
等方案未做验证)
什么情况推荐使用
- 中小型项目
- 需要快速开发的项目
- 不想换人接手就大喊重构的项目
有什么功能特性
- 不需要写路由配置,文件结构即路由
- 默认提供
i18n
国际化多语言支持 - 环境变量放到
src/env
目录中,便于管理 - 默认提供自动导入文件、配置、组件、插件等
- 灵活可控的项目骨架系统(
layout
) - 默认提供封装好的全局
pinia
存储方案 - 默认提供
scss
变量自动导入 - 默认提供强大的工具函数
yidash(易大师)
- 默认提供
vite
预构建配置,解决页面重新加载的问题 - 极少的项目依赖,所有开发依赖都在脚手架中
- 默认提供
git
提交时格式化支持 - 默认启用
reset.css
和normalize.css
有什么优势
- 大量自动特性,提高效率
- 大量约定配置,提高项目稳定性
- 提供完整且完善的基本项目开发模板
- 约定大于配置,适合多人合作
版权声明
本仓库下的所有代码,均为 GPL-3.0 协议,如果你需要使用本仓库中的项目,需要满足以下要求:
- 你可以免费使用、复制、修改、分发受保护程序,但分发时一定要提供源码。
- 你可以使用本仓库中的项目开发商业软件并收费,但不能收许可费、版税、专利许可费、授权费这类费用。
- GPL 程序的所有贡献者,自动免费提供了专利许可,承诺不会告人侵犯专利权。
- GPL 程序允许别人破解。如果是用在消费类硬件上,要允许人修改并安装程序。
简而言之,请任意免费使用或商用,但是请保留本项目版权所有。