Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History

README.md

Outline

星河小程序前端框架

项目结构

本项目由多个包组成:

  • common:各分包通用公共工具函数。
  • compiler:小程序源码编译工具。
  • components:内置小程序标准组件。
  • container:原生容器层,为小程序提供 API。
  • jdimina:webview sdk,为 webview 组件提供调用协议。
  • render:渲染层,负责 UI 展示与消息处理。
  • server:网络请求代理服务器, 提供给 web 端网络请求代理,用以解决跨域问题。
  • service:逻辑层(JavaScript 运行时、worker 线程、消息通道)。

环境要求

建议使用 Node.js 22+ 和 pnpm 7+。仓库已配置 Volta Node.js 22.22.3;如果使用 Volta,可直接在 fe/ 目录执行 pnpm 命令。

开始上手

安装说明

# 进入前端工作区
cd fe

# 安装依赖
pnpm install

开发说明

# 编译 example/ 目录下的所有小程序
pnpm compile

# 忽略本地编译缓存,强制重新编译 example/ 目录下的所有小程序
pnpm compile --force

# 构建(开发环境,不压缩)
pnpm build:dev

# 构建(生产环境,压缩)
pnpm build

# 预览生产构建
pnpm preview

# Web开发
pnpm dev

# 原生容器调试
pnpm dev:native

# 运行测试
pnpm test

# 生成小程序包
# 注意:需要 shared/jsapp 目录存在
pnpm generate:app

# 生成SDK包
# 注意:需要先执行构建命令
pnpm generate:sdk

资源生成工具

pnpm compile

编译 example/ 目录下的所有小程序,并将产物输出到 packages/container/public

默认情况下,命令会读取 packages/container/public/compile-cache.json,跳过未发生变化的小程序以提升编译速度。如需忽略本地缓存并重新编译全部示例小程序,可以执行:

pnpm compile --force

也支持简写参数:

pnpm compile -f

pnpm generate:app

将编译好的小程序打包并复制到仓库根目录的 shared/jsapp 中。

注意事项:

  • 运行前必须确保 shared/jsapp 目录已存在,否则命令将终止
  • 会自动递增小程序的版本号
  • 生成的资源包括 config.json 配置文件和 [appId].zip 代码包

pnpm generate:sdk

将构建好的 SDK 打包并复制到仓库根目录的 shared/jssdk 中。

注意事项:

  • 运行前必须先执行构建命令 pnpm buildpnpm build:dev
  • 会自动递增 SDK 的版本号
  • 生成的资源包括 config.json 配置文件和 main.zip SDK 包

vConsole 调试

JSSDK 直接依赖 vConsole,并随 pageFrame 静态同步打包;只有检测到 vConsole 启用标记时才会初始化。pageFrame 会在 render 初始化前检查 URL 参数,Web 容器会通过 pageFrame URL 参数默认启用;三端 SDK 的调试位开启后也会追加同一个 URL 参数。

各端触发条件:

  • Web 容器:加载 pageFrame 时总是追加 ?vconsole=1
  • Android:Dimina.DiminaConfig.Builder().setDebugMode(true)
  • iOS:Debug 构建,或 DMPAppConfig.isDebugMode = true
  • Harmony:debug HAP,或 DMPAppConfig.isDebugMode = true

注意事项:

  • vConsole 随 pageFrame 静态同步打包,只有启用标记存在时才会初始化
  • Web 容器默认追加启用标记;三端 native 由各自 debug 位控制是否追加启用标记

dmcc 编译工具

请参考编译工具使用说明

Morty Proxy This is a proxified and sanitized view of the page, visit original site.