项目的目录结构和命名做了更新
@@ -20,13 +20,15 @@ export default defineConfig({
|
|||||||
nav: [
|
nav: [
|
||||||
// { text: '文档', link: '/document/index' },
|
// { text: '文档', link: '/document/index' },
|
||||||
//
|
//
|
||||||
{ text: 'Devstar', link: '/devstar' },
|
{ text: 'DevStar Studio', link: '/devstar' },
|
||||||
{ text: 'Cloudbuild', link: '/cloudbuild' },
|
{ text: '编译加速', link: '/compiling' },
|
||||||
{ text: 'Simulator', link: '/simulator' },
|
{ text: '虚拟仿真', link: '/simulator' },
|
||||||
{ text: 'Enterprise', link: '/enterprise' },
|
{ text: 'Enterprise', link: '/enterprise' },
|
||||||
],
|
],
|
||||||
sidebar: {
|
sidebar: {
|
||||||
'/devstar/': sidebarDocument(), // 直接返回 SidebarItem[]
|
'/devstar/': sidebarDevStar(), // 直接返回 SidebarItem[]
|
||||||
|
'/compiling/': sidebarCompiling(),
|
||||||
|
'/simulator/': sidebarSimulator(),
|
||||||
'/enterprise/': sidebarEnterprise()
|
'/enterprise/': sidebarEnterprise()
|
||||||
},
|
},
|
||||||
socialLinks: [
|
socialLinks: [
|
||||||
@@ -34,7 +36,7 @@ export default defineConfig({
|
|||||||
],
|
],
|
||||||
// footer: [
|
// footer: [
|
||||||
// copyright: 'Copyright © 2025-present devstar contributors',
|
// copyright: 'Copyright © 2025-present devstar contributors',
|
||||||
// [Copyright © 2025-present Devstar Contributors](https://github.com/mengning/DevStar)
|
// [Copyright © 2025-present DevStar Contributors](https://github.com/mengning/DevStar)
|
||||||
// { copyright: 'Copyright © 2025-present devstar contributors', link: 'https://github.com/mengning/DevStar' }
|
// { copyright: 'Copyright © 2025-present devstar contributors', link: 'https://github.com/mengning/DevStar' }
|
||||||
// ] as any,
|
// ] as any,
|
||||||
// footer: {
|
// footer: {
|
||||||
@@ -64,10 +66,10 @@ export default defineConfig({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
function sidebarDocument(): DefaultTheme.SidebarItem[] {
|
function sidebarDevStar(): DefaultTheme.SidebarItem[] {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
text: 'Devstar是什么',
|
text: 'DevStar是什么',
|
||||||
link: '/devstar/index',
|
link: '/devstar/index',
|
||||||
items: []
|
items: []
|
||||||
} as any,
|
} as any,
|
||||||
@@ -229,6 +231,128 @@ function sidebarDocument(): DefaultTheme.SidebarItem[] {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function sidebarSimulator(): DefaultTheme.SidebarItem[] {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
text: 'Gitea Enterprise 是什么',
|
||||||
|
link: '/enterprise/index',
|
||||||
|
items: [
|
||||||
|
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '特征',
|
||||||
|
collapsible: true, // 使整个组可折叠
|
||||||
|
collapsed: true, // 默认展开
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
text: '可继承分支保护',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/inheritable-branch-protection'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '依赖关系扫描',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/dependency-scan'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'IP 允许列表',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/ip-allowlist'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '企业主题',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/enterprise-theme'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '强制2FA身份验证',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/mandatory-2fa'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '审计日志',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/audit-log'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'SAML',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/saml-auth'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '发布节奏和版本控制',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/release-cadence'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
} as any,
|
||||||
|
{
|
||||||
|
text: '安装',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/installation',
|
||||||
|
items: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '常见问题',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/faq',
|
||||||
|
items: []
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
function sidebarCompiling(): DefaultTheme.SidebarItem[] {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
text: 'Gitea Enterprise 是什么',
|
||||||
|
link: '/enterprise/index',
|
||||||
|
items: [
|
||||||
|
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '特征',
|
||||||
|
collapsible: true, // 使整个组可折叠
|
||||||
|
collapsed: true, // 默认展开
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
text: '可继承分支保护',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/inheritable-branch-protection'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '依赖关系扫描',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/dependency-scan'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'IP 允许列表',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/ip-allowlist'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '企业主题',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/enterprise-theme'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '强制2FA身份验证',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/mandatory-2fa'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '审计日志',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/audit-log'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'SAML',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/saml-auth'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '发布节奏和版本控制',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/features/release-cadence'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
} as any,
|
||||||
|
{
|
||||||
|
text: '安装',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/installation',
|
||||||
|
items: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '常见问题',
|
||||||
|
link: 'https://docs.gitea.com/enterprise/faq',
|
||||||
|
items: []
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
function sidebarEnterprise(): DefaultTheme.SidebarItem[] {
|
function sidebarEnterprise(): DefaultTheme.SidebarItem[] {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
@@ -290,11 +414,3 @@ function sidebarEnterprise(): DefaultTheme.SidebarItem[] {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
function sidebarRunner(): DefaultTheme.SidebarItem[] {
|
|
||||||
return [
|
|
||||||
{
|
|
||||||
link: '/runner/index',
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# 分布式编译系统CloudBuild
|
# 分布式编译系统CloudBuild
|
||||||

|

|
||||||
## 为什么需要分布式编译技术
|
## 为什么需要分布式编译技术
|
||||||
- 大型项目过长的编译耗时将会给开发、测试和调试都带来延迟,所以缩短大型项目的编译时间的分布式编译系统有重要意义
|
- 大型项目过长的编译耗时将会给开发、测试和调试都带来延迟,所以缩短大型项目的编译时间的分布式编译系统有重要意义
|
||||||
- 使用分布式编译系统编译项目可以利用计算机集群提高编译效率,缩短项目编译时间
|
- 使用分布式编译系统编译项目可以利用计算机集群提高编译效率,缩短项目编译时间
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
## 总体架构
|
## 总体架构
|
||||||
### 系统总体架构
|
### 系统总体架构
|
||||||

|

|
||||||
- Ninja:客户端,该机器上需要保存有完整的待编译项目源代码。
|
- Ninja:客户端,该机器上需要保存有完整的待编译项目源代码。
|
||||||
- Action Cache:服务端缓存,主要保存编译任务的执行结果。
|
- Action Cache:服务端缓存,主要保存编译任务的执行结果。
|
||||||
- CAS Cache:服务端缓存,主要保存客户端上传的依赖文件,编译结果文件。
|
- CAS Cache:服务端缓存,主要保存客户端上传的依赖文件,编译结果文件。
|
||||||
@@ -17,19 +17,19 @@
|
|||||||
- Executor:各个编译节点
|
- Executor:各个编译节点
|
||||||
|
|
||||||
### 部署示意图
|
### 部署示意图
|
||||||

|

|
||||||
CloudBuild主程序分为三个部分:Client、Server、Executor。
|
CloudBuild主程序分为三个部分:Client、Server、Executor。
|
||||||
- Client:运行在客户端,和用户对接,用于生成待执行的远程编译任务, 同时也作为本地编译节点执行本地任务。
|
- Client:运行在客户端,和用户对接,用于生成待执行的远程编译任务, 同时也作为本地编译节点执行本地任务。
|
||||||
- Server:运行在主服务器,主要用于连接各个编译节点,以及 将客户端上传的编译任务调度到与其连接的各个编译节点上。
|
- Server:运行在主服务器,主要用于连接各个编译节点,以及 将客户端上传的编译任务调度到与其连接的各个编译节点上。
|
||||||
- Executor:运行在编译节点,负责接收并执行编译任务,是编译任务真正执行的地方。
|
- Executor:运行在编译节点,负责接收并执行编译任务,是编译任务真正执行的地方。
|
||||||
|
|
||||||
### 系统分层结构
|
### 系统分层结构
|
||||||

|

|
||||||
|
|
||||||
## 运行原理与流程
|
## 运行原理与流程
|
||||||
|
|
||||||
### 分布式编译原理
|
### 分布式编译原理
|
||||||

|

|
||||||
|
|
||||||
### CloudBuild客户端
|
### CloudBuild客户端
|
||||||
CloudBuild客户端基于Ninja改造,有下面这些优势
|
CloudBuild客户端基于Ninja改造,有下面这些优势
|
||||||
@@ -54,23 +54,23 @@ CloudBuild客户端基于Ninja改造,有下面这些优势
|
|||||||
|
|
||||||
## AOSP和LLVM上的应用
|
## AOSP和LLVM上的应用
|
||||||
### LLVM上的应用效果
|
### LLVM上的应用效果
|
||||||

|

|
||||||
### AOSP上的应用效果
|
### AOSP上的应用效果
|
||||||

|

|
||||||
### CloudBuild硬件资源利用率
|
### CloudBuild硬件资源利用率
|
||||||
4核CPU利用率:
|
4核CPU利用率:
|
||||||

|

|
||||||
8核CPU利用率:
|
8核CPU利用率:
|
||||||

|

|
||||||
16核CPU利用率:
|
16核CPU利用率:
|
||||||

|

|
||||||
|
|
||||||
## CloudBuild使用方法
|
## CloudBuild使用方法
|
||||||
### CloudBuild安装
|
### CloudBuild安装
|
||||||

|

|
||||||
CloudBuild项目地址:https://gitee.com/cloudbuild888/cloudbuild.git
|
CloudBuild项目地址:https://gitee.com/cloudbuild888/compiling.git
|
||||||
### CloudBuild分布式编译
|
### CloudBuild分布式编译
|
||||||

|

|
||||||
LLVM项目地址:https://gitee.com/mirrors/LLVM.git
|
LLVM项目地址:https://gitee.com/mirrors/LLVM.git
|
||||||
|
|
||||||
|
|
||||||
@@ -3,7 +3,7 @@ outline: deep
|
|||||||
weight: 1
|
weight: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
# 关于Devstar
|
# 关于DevStar
|
||||||
|
|
||||||
DevStar一站式智能研发平台采用分层架构设计,核心提供DevEnv容器化开发引擎、CI/CD流水线(原生支持Actions和Runners)、Git代码仓库和制品管理功能,上层全面兼容主流IDE(如VSCode、Cursor)和开发工具链,支持C/C++/Go/Rust等语言及ARM/RISC-V/AI芯片开发。平台集成了代码大模型(如DeepSeek、Claude)、MCP服务器集群(包括Github-MCP和DevStar-MCP)、分布式编译服务(CloudBuild/BuildFarm)以及虚拟化平台(QEMU/Renode)等增强功能,底层基于Docker/Kubernetes云原生平台构建,形成从编码、测试到部署的完整研发生态,并通过项目模板生态和应用商店实现开箱即用的开发体验。
|
DevStar一站式智能研发平台采用分层架构设计,核心提供DevEnv容器化开发引擎、CI/CD流水线(原生支持Actions和Runners)、Git代码仓库和制品管理功能,上层全面兼容主流IDE(如VSCode、Cursor)和开发工具链,支持C/C++/Go/Rust等语言及ARM/RISC-V/AI芯片开发。平台集成了代码大模型(如DeepSeek、Claude)、MCP服务器集群(包括Github-MCP和DevStar-MCP)、分布式编译服务(CloudBuild/BuildFarm)以及虚拟化平台(QEMU/Renode)等增强功能,底层基于Docker/Kubernetes云原生平台构建,形成从编码、测试到部署的完整研发生态,并通过项目模板生态和应用商店实现开箱即用的开发体验。
|
||||||
|
|
||||||
@@ -18,11 +18,11 @@ DevStar Studio是一个通用的一站式软件研发平台,它最初的目标
|
|||||||
- Git代码托管、镜像仓库等制品管理Releases/Packages、项目管理Projects/Issues、知识管理Wiki等
|
- Git代码托管、镜像仓库等制品管理Releases/Packages、项目管理Projects/Issues、知识管理Wiki等
|
||||||
|
|
||||||
## 优势
|
## 优势
|
||||||
- 验证与开发同步:传统开发流程验证阶段滞后于开发,而Devstar开发流程可以实现“边开发边验证”的并行模式
|
- 验证与开发同步:传统开发流程验证阶段滞后于开发,而DevStar开发流程可以实现“边开发边验证”的并行模式
|
||||||
- 集成测试前置:传统开发流程集成测试集中在后期,而Devstar开发流程将集成测试拆解到开发各阶段
|
- 集成测试前置:传统开发流程集成测试集中在后期,而DevStar开发流程将集成测试拆解到开发各阶段
|
||||||
- 测试条件与实际高度一致:传统开发流程测试环境与真实场景存在差异,而Devstar开发流程可以构建高保真测试环境
|
- 测试条件与实际高度一致:传统开发流程测试环境与真实场景存在差异,而DevStar开发流程可以构建高保真测试环境
|
||||||
- 失效迭代前置:传统开发流程失效迭代出现在后期,而Devstar开发流程将失效识别和处理提前到了开发早期
|
- 失效迭代前置:传统开发流程失效迭代出现在后期,而DevStar开发流程将失效识别和处理提前到了开发早期
|
||||||
- 兼容不容层级的虚拟化:传统开发流程只能保证单一流程的虚拟化,而而Devstar开发流程可同时兼容硬件级虚拟化、系统级虚拟化、进程级虚拟化
|
- 兼容不容层级的虚拟化:传统开发流程只能保证单一流程的虚拟化,而而DevStar开发流程可同时兼容硬件级虚拟化、系统级虚拟化、进程级虚拟化
|
||||||
|
|
||||||
## 在线演示
|
## 在线演示
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ layout: home
|
|||||||
hero:
|
hero:
|
||||||
# name: " 通用的"
|
# name: " 通用的"
|
||||||
# text: " 为中小型公司提供IT服务"
|
# text: " 为中小型公司提供IT服务"
|
||||||
text: "DevStar Studio: The Last Mile of Al for R&D"
|
text: "DevStar: The Last Mile of Al for R&D"
|
||||||
tagline: 为AI时代打造的新一代智能研发平台,面向人类开发者和AI开发者的融合团队,专注于产品质量和团队效能,为研发部门赋能提效的一站式解决方案
|
tagline: 为AI时代打造的新一代智能研发平台,面向人类开发者和AI开发者的融合团队,专注于产品质量和团队效能,为研发部门赋能提效的一站式解决方案
|
||||||
image:
|
image:
|
||||||
src: /slider1.png
|
src: /slider1.png
|
||||||
@@ -16,7 +16,7 @@ hero:
|
|||||||
# link: /devstar/index
|
# link: /devstar/index
|
||||||
# - theme: alt
|
# - theme: alt
|
||||||
# text: CloudBuild
|
# text: CloudBuild
|
||||||
# link: /cloudbuild/index
|
# link: /compiling/index
|
||||||
# - theme: alt
|
# - theme: alt
|
||||||
# text: Simulator
|
# text: Simulator
|
||||||
# link: /simulator/index
|
# link: /simulator/index
|
||||||
@@ -30,7 +30,7 @@ hero:
|
|||||||
# details: 安装和使用体验良好的详细描述
|
# details: 安装和使用体验良好的详细描述
|
||||||
---
|
---
|
||||||
<script setup>
|
<script setup>
|
||||||
import Index from './components/index.vue' // 你的组件
|
import Index from './index.vue' // 你的组件
|
||||||
</script>
|
</script>
|
||||||
<Index/>
|
<Index/>
|
||||||
|
|
||||||
|
|||||||
@@ -15,12 +15,12 @@
|
|||||||
:class="{ 'image-hover': hoverItem === 'about' }"
|
:class="{ 'image-hover': hoverItem === 'about' }"
|
||||||
>
|
>
|
||||||
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'about' }">
|
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'about' }">
|
||||||
<h2>Devstar Studio</h2>
|
<h2>AI+ DevOps</h2>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="/cloudbuild"
|
href="/compiling"
|
||||||
class="ten_img"
|
class="ten_img"
|
||||||
@mouseenter="hoverItem = 'culture'"
|
@mouseenter="hoverItem = 'culture'"
|
||||||
@mouseleave="hoverItem = null"
|
@mouseleave="hoverItem = null"
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
:class="{ 'image-hover': hoverItem === 'culture' }"
|
:class="{ 'image-hover': hoverItem === 'culture' }"
|
||||||
>
|
>
|
||||||
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'culture' }">
|
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'culture' }">
|
||||||
<h2>Cloudbuild</h2>
|
<h2>编译加速</h2>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
:class="{ 'image-hover': hoverItem === 'office' }"
|
:class="{ 'image-hover': hoverItem === 'office' }"
|
||||||
>
|
>
|
||||||
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'office' }">
|
<div class="ten_img_txt" :class="{ 'text-hover': hoverItem === 'office' }">
|
||||||
<h2>Simulator</h2>
|
<h2>虚拟仿真</h2>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 233 KiB After Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
10
package-lock.json
generated
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "devstar介绍文档",
|
"name": "docs",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"prismjs": "^1.30.0"
|
"prismjs": "^1.30.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vitepress": "^1.6.3"
|
"vitepress": "^1.6.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@algolia/autocomplete-core": {
|
"node_modules/@algolia/autocomplete-core": {
|
||||||
@@ -2291,9 +2291,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vitepress": {
|
"node_modules/vitepress": {
|
||||||
"version": "1.6.3",
|
"version": "1.6.4",
|
||||||
"resolved": "https://registry.npmmirror.com/vitepress/-/vitepress-1.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.6.4.tgz",
|
||||||
"integrity": "sha512-fCkfdOk8yRZT8GD9BFqusW3+GggWYZ/rYncOfmgcDtP3ualNHCAg+Robxp2/6xfH1WwPHtGpPwv7mbA3qomtBw==",
|
"integrity": "sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"vitepress": "^1.6.3"
|
"vitepress": "^1.6.4"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"docs:dev": "vitepress dev docs",
|
"docs:dev": "vitepress dev docs",
|
||||||
|
|||||||