npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gct-paas/render

v6.1.2

Published

paas 平台网页端底包

Downloads

3,952

Readme

@gct-paas/render

PaaS 平台渲染引擎底包。负责将设计 schema 渲染为运行时页面:设计渲染 controller/state、Event 引擎、表达式、搜索 hooks、RenderNode 注册。挂载 _gct.register.render 与 window._kit。

本文档面向后续开发与 AI 模型阅读:说明渲染注册机制及与 render-web 的分工。

包信息

| 项 | 值 | | --- | --- | | 包名 | @gct-paas/render | | 入口 | es/index.mjs(类型:es/index.d.ts) | | 全局类型 | @gct-paas/render/types | | peer | @gct-paas/api、core、core-web、schema、scss、vue>=3 |

import { renderSetupApp, RenderRegister, RenderNodeRegister } from '@gct-paas/render';
// 引入即 onInit() → register.render + window._kit

在 monorepo 中的位置

core → core-web → render(渲染引擎)
                      └── render-web(Web 渲染产品层)

规划中:render-mobile / render-pad 为端侧对等层(仓库暂未包含)。


依赖说明

关键 workspace 依赖

| 包 | 用途 | | --- | --- | | @gct-paas/core | _gct、PluginPgkUtil、工具 | | @gct-paas/core-web | 运行时 UI、表单渲染基础 | | @gct-paas/schema | 渲染 schema 类型 |

主要工具依赖

| 依赖 | 用途 | | --- | --- | | esprima-next + escodegen | 表达式 AST | | vue3-dnd | 运行时拖拽 | | bignumber.js | 数值计算 | | axios / qs | 渲染期请求 |


源码结构

packages/render/src/
├── index.ts              # onInit → register.render + _kit
├── setup-app.ts          # renderSetupApp(locale)
├── register/             # RenderRegister、RenderNodeRegister
├── components/           # design-render、design-render-item
├── controller/           # 渲染 controller 层级
├── state/                # Pinia/状态:design-render*
├── Event/                # 页面事件引擎、依赖规则、bizService
├── providers/            # 节点 provider 扩展
├── hooks/                # useDesignRenderController 等
├── utils/                # 表达式、搜索、插件包、field-attrs
├── modules/vue3-dnd/     # 运行时 DND
└── constant/             # 数据格式、日期等

与 _gct 的关系

引入时自动挂载(防重复):

_gct.register.render = new RenderRegister();

// 插件/套件扩展容器(只读空对象,由各 kit 写入)
Object.defineProperty(window, '_kit', {
  value: {},
  writable: false,
  configurable: false,
});

| 全局 | 说明 | | --- | --- | | _gct.register.render | 渲染器总注册(视图、插件等) | | window._kit | 套件/插件挂载点,供扩展包注册能力 |

运行时还依赖 core-web 的 _gct.message、mqtt、store、router 等。


启动与用法

import { setupApp, createAppVue } from '@gct-paas/core';
import { coreWebSetupApp, coreWebCreateAppVue } from '@gct-paas/core-web';
import { renderSetupApp } from '@gct-paas/render';

const app = createApp(Root);

await setupApp(app);
await coreWebSetupApp(app);
await renderSetupApp(app);     // 注册 render locale

createAppVue(app);
coreWebCreateAppVue(app);

app.mount('#app');

扩展渲染节点:

import {
  RenderNodeRegister,
  RenderNodeType,
  DesignRenderViewPrefix,
} from '@gct-paas/render';

RenderNodeRegister.register(
  RenderNodeType.FIELD,
  () => new MyFieldProvider(),
  DesignRenderViewPrefix.CARD_VIEW,
);

(Web 端 card-view 注册见 @gct-paas/render-web 的 renderWebSetupApp。)


主要导出速查

| 类别 | 示例 | | --- | --- | | 启动 | renderSetupApp、onInit | | 注册 | RenderRegister、RenderNodeRegister、RenderNodeType | | 渲染 | design-render 组件、controller/state | | Event | baseEvent、Dependency、页面事件 utils | | 工具 | 表达式、search hooks、render-plugin-pkg-util | | 常量 | DesignRenderViewPrefix、data-format |


与 @gct-paas/render-web 的分工

| 层 | 职责 | | --- | --- | | render | 跨端渲染引擎:controller、Event、register.render、_kit | | render-web | Web 产品实现:BasicPage、card-view 插件、页面事件、app-mqtt |


给后续模型的约束

  1. 新增渲染 provider → RenderNodeRegister + provider 类,类型对齐 schema。
  2. 套件扩展写入 window._kit,不要替换整个 _kit 对象。
  3. 页面事件/表达式逻辑放 Event/,避免在 render-web 重复实现引擎逻辑。
  4. 重复引入 render 包会警告 register.render 已存在。

本地命令

cd packages/render
npm run dev
npm run build        # lint + vue-tsc + 双 Vite 构建