alibaba / lowcode-engine

An enterprise-class low-code technology stack with scale-out design / 一套面向扩展设计的企业级低代码技术体系

Home Page:https://lowcode-engine.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

一个引擎渲染自定义物料的疑问

736473283 opened this issue · comments

1.我现在自己魔改了ant design的组件,打包后,使用了自己打包的assets.json物料,但是在物料渲染的时候,assets.json必须加上下方这个组件

    {
      "title": "fusion组件库",
      "package": "@alifd/next",
      "version": "1.26.4",
      "urls": [
        "https://g.alicdn.com/code/lib/alifd__next/1.26.4/next.min.css",
        "https://g.alicdn.com/code/lib/alifd__next/1.26.4/next-with-locales.min.js"
      ],
      "library": "Next"
    }

2.如果不加上上述的组件,就会抛出如下异常:

Uncaught TypeError: Cannot read properties of undefined (reading 'Menu')
    at e (universalModuleDefinition:9:69)
    at universalModuleDefinition:1:1

image

image

3.我想知道的是,这个组件在自定义的物料的时候,起到的作用是什么?如果这个组件是必须的,有没有办法在其他地方引入。

4.可用的资产assets.json文件如下

{
  "packages": [
    {
      "package": "moment",
      "version": "2.24.0",
      "urls": ["https://g.alicdn.com/mylib/moment/2.24.0/min/moment.min.js"],
      "library": "moment"
    },
    {
      "package": "lodash",
      "library": "_",
      "urls": ["https://g.alicdn.com/platform/c/lodash/4.6.1/lodash.min.js"]
    },
    {
      "package": "iconfont-icons",
      "urls": "//at.alicdn.com/t/font_2369445_ukrtsovd92r.js"
    },
    {
      "package": "@ant-design/icons",
      "version": "4.7.0",
      "urls": ["//g.alicdn.com/code/npm/@ali/ant-design-icons-cdn/4.5.0/index.umd.min.js"],
      "library": "icons"
    },
    {
      "package": "antd",
      "version": "4.19.5",
      "urls": [
        "//g.alicdn.com/code/lib/antd/4.23.0/antd.min.js",
        "//g.alicdn.com/code/lib/antd/4.23.0/antd.min.css"
      ],
      "library": "antd"
    },
    {
      "title": "fusion组件库",
      "package": "@alifd/next",
      "version": "1.26.4",
      "urls": [
        "https://g.alicdn.com/code/lib/alifd__next/1.26.4/next.min.css",
        "https://g.alicdn.com/code/lib/alifd__next/1.26.4/next-with-locales.min.js"
      ],
      "library": "Next"
    },
    {
      "package": "@alilc/antd-lowcode-materials",
      "version": "1.2.1",
      "library": "AntdLowcode",
      "urls": [
        "https://alifd.alicdn.com/npm/@alilc/antd-lowcode-materials@1.2.1/build/lowcode/view.js",
        "https://alifd.alicdn.com/npm/@alilc/antd-lowcode-materials@1.2.1/build/lowcode/view.css"
      ],
      "editUrls": [
        "https://alifd.alicdn.com/npm/@alilc/antd-lowcode-materials@1.2.1/build/lowcode/view.js",
        "https://alifd.alicdn.com/npm/@alilc/antd-lowcode-materials@1.2.1/build/lowcode/view.css"
      ]
    }
  ],
  "components": [
    {
      "exportName": "AlilcAntdLowcodeMaterialsMeta",
      "npm": {
        "package": "@alilc/antd-lowcode-materials",
        "version": "1.2.1"
      },
      "url": "https://alifd.alicdn.com/npm/@alilc/antd-lowcode-materials@1.2.1/build/lowcode/meta.js",
      "urls": {
        "default": "https://alifd.alicdn.com/npm/@alilc/antd-lowcode-materials@1.2.1/build/lowcode/meta.js"
      }
    }
  ],
  "sort": {
    "groupList": ["精选组件", "原子组件"],
    "categoryList": ["通用", "导航", "信息输入", "信息展示", "信息反馈"]
  },
  "groupList": ["精选组件", "原子组件"],
  "ignoreComponents": {}
}

Environments:

  • AliLowCodeEngine version: 1.1.2
  • AliLowCodeEngineExt version: 1.0.0
  • Browser: chrome 124.0.6367.61

@736473283 原先的渲染器在实现的时候依赖了 next, 可以作为 external 引入

@1ncounter 指的是在build.json中的 external 么?我这里已经有引入了。
image

已解决,在自定义的资产项目中,build.lowcode.js文件下的builtinAssets配置项,添加Next的相关配置

        builtinAssets: [
          {
            packages: [
              // ...省略其他配置
              {
                "title": "fusion组件库",
                "package": "@alifd/next",
                "version": "1.26.4",
                "urls": [
                  "https://g.alicdn.com/code/lib/alifd__next/1.26.4/next.min.css",
                  "https://g.alicdn.com/code/lib/alifd__next/1.26.4/next-with-locales.min.js"
                ],
                "library": "Next"
              },
            ],
            components: [],
          },
        ]