公共组件库 🎉 公共后端接口 🎉 公共后台 🎉 第三方组件库 ⏳
| | | |
| | | |
+------------------+------------------+------------------+
|
|
v
本项目 🚧
状态说明:
- 🚧 开发中
- ⏳ 等待中
- 🎉 已完成
公共组件库地址:https://zs-library.virs.xyz/
2x 正在开发中,查看历史版本请切换至 1x 分支
后端部分暂不开源,待项目稳定后发布
- 账号 🎉
- 图标排序配置 🎉
- 搜索建议 🚧
- 添加自定义网站 🚧
- 自定义主题 🚧
- 自定义壁纸 🚧
- 数据同步 🚧
- 插件系统 🚧
- 移动端支持 ⏳
- AI 搜索 ⏳
- 1.x 分支 1.x
- 2.x 分支 2.x
Discord: https://discord.gg/NRMxAmqG
QQ 群:859791575
欢迎提供意见或建议
需要 nodejs(版本不限,建议最新)、pnpm。当前仓库已调整为 pnpm workspace,多项目依赖统一在仓库根目录安装。
安装依赖:
pnpm install启动项目:
pnpm dev编译项目:
pnpm build项目内置 apps/widgets/<name> 小组件工作流。小组件需要导出 mount(container, props = {}),并返回清理函数;打包产物入口固定为 index.js,清单文件 widget.config.json 的 entry 也应保持为 index.js。
创建脚手架:
pnpm widget:create react my-widget
pnpm widget:create vue my-widget
pnpm widget:create solid my-widget脚手架会生成 apps/widgets/<name>/package.json、tsconfig.json、vite.config.js、widget.config.json、src/index、组件、样式、图标和本地开发页。React 模板默认使用 TypeScript/TSX、Tailwind CSS utilities 和 shadcn/ui 风格的本地组件;React、Vue 和 Solid 模板都按各自框架的标准组件写法开发,并随小组件打包各自运行时,避免不同框架或不同版本依赖在宿主页面中互相冲突。React 模板只引入带 tw: 前缀的 Tailwind utilities,不引入全局 preflight/base,并把样式注入到小组件容器内,减少组件之间和宿主页面之间的样式串扰。模板细节见 scripts/widget-templates/README.md。
安装依赖并启动某个小组件:
pnpm install
pnpm --filter my-widget-widget dev构建某个小组件:
pnpm --filter my-widget-widget build构建输出位于 dist/widget-build/<name>/index.js,并在 dist/widget-build/<name>/screenshots/icon 生成 icon 模式下每个 sizeConfigs 与浅/深主题组合的截图;screenshots/manifest.json 会记录截图清单。生成 .snwidget:
pnpm widget:pack my-widget该命令会通过 pnpm workspace 执行对应小组件的 build,复制 widget.config.json,确保截图清单已生成,并把 screenshots 目录一起写入 dist/widgets/<name>-<version>.snwidget。生成后可在开发者小组件页面填写后端解压后的远程入口进行调试。
注意:小组件入口是远程 ESM 代码,会在宿主页面权限下运行并访问注入的 SDK。仅加载自己开发或可信来源的小组件。
待更新
规划中,预计采用微前端方案
待更新,不开源,提供构建后的文件
多语言:
VS Code 安装 i18n Ally 插件
-----none------