Preparing search index...

    Сборка внешних модулей

    Если есть необходимость использовать TypeScript, JSX, и подключение сторонних библиотек.

    Для сборки внешнего модуля можно использовать любой сборщик. Однако, при настройке сборщика необходимо учитывать следующие особенности окружения:

    • SDK предоставляет доступ к встроенной в приложение библиотеке React и библиотеке React-компонентов. Это означает, что преобразование JSX в JS должно быть настроено со ссылкой на фабрику элементов:
      window.Universe.Vendor.React.createElement(Component, {});
      
    • Для возможностей реактивности внутри приложения используется библиотека mobx, и "старые" декораторы. Использование устаревших декораторов нужно явно указать при настройке транспайла.

    SDK-пакет продукта предоставляет рекомендуемую TS-конфигурацию, её можно подключить в tsconfig.json проекта кастомизации:

    {
    "extends": ["@universe-ee/sdk/tsconfig.recommended.json"],
    "include": [
    "@universe-ee/sdk"
    ],
    "files": [
    "custom.ts"
    ]
    }

    Доступ ко всем типам SDK доступен так же через SDK-пакет:

    import {Universe} from '@universe-ee/sdk';

    type DefaultExport = Universe.Platform.UserExit.ExternalModuleDefault;

    export default {
    userExits: [],
    } satisfies DefaultExport;

    Для сборки внешних модулей рекомендуется (но не обязательно) использовать Vite, т.к. он позволяет с минимальными настройками получить рабочий бандл в виде ES-модуля. Пример vite.config.js:

    import {defineConfig} from "vite";

    export default defineConfig({
    build: {
    lib: {
    entry: 'src/custom.ts',
    formats: ['es'],
    fileName: 'custom'
    }
    }
    });