Как собрать umd-версию material-ui?

Сценарий material-ui "build: es2015" создает сценарии commonjs, а не ES2015.
'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});

etc.

Я пытаюсь найти способ создать версию material-ui для AMD, похожую на https://reactjs.org/docs/installation.html#using-a-cdn.

С ES2015 я смогу скомпилировать машинописный текст в пакет AMD. Исходные файлы очень похожи на файлы машинописного текста, но изменения расширения на TSX недостаточно ... на самом деле это не файлы машинописного текста (что это такое?).

Кроме того, я попробовал, что "build: umd: dev" не дает ничего лучше, чем https://unpkg.com/[email protected]/umd/react.development.js, и они кажутся несовместимыми с requirejs.

Каковы необходимые шаги для создания настоящей umd-версии material-ui?

Предыстория: Да, я знаю, что в традиционном процессе разработки реакции используется веб-пакет, но я пытаюсь создать легкое, зависимое от CDN приложение для проверки концепции, работающее из rawgit. У меня работают части react и react-dom, но не material-ui.

<html>

<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js"></script>
    <style>
        @import url('app.css');
    </style>
</head>

<body>
    <app/>
    <script>
        requirejs.config({
            // module name mapped to CDN url
            paths: {
                'react': 'https://unpkg.com/[email protected]/umd/react.production.min',
                'react-dom': 'https://unpkg.com/[email protected]/umd/react-dom.production.min',
                'openlayers': 'https://cdnjs.cloudflare.com/ajax/libs/ol3/4.5.0/ol',
            },
            deps: ['built/index'],
            callback: () => require(["index"], go => console.log("app", go()))
        });
    </script>
</body>

</html>

person Corey Alix    schedule 02.12.2017    source источник


Ответы (2)


Сборка UMD публикуется для каждого выпуска.

Например: https://unpkg.com/[email protected]/umd/

Примечание: в версии 4 вывод UMD будет переименован в MaterialUI (ранее material-ui). См. Этот запрос на вытягивание для получения дополнительной информации.

person Ken Gregory    schedule 19.12.2017

Что ж, мне нравятся пространства имен TypeScript для прототипирования, и я уже создал отдельный дистрибутив UMD. с вводом для расширения глобального объекта

Проверьте исходный код и пример приложения здесь.

namespace app {

  const {
    Button,
  } = material.core;

  const App = () => <Button>Hello, world!</Button>

  ...

Также я написал несколько инструментов, которые помогут вам сделать ваше приложение независимым от npm, включая маршрутизатор, поставщика закусок, диспетчер состояний, генератор форм шаблона JSON, поставщик выборки, средства выбора даты и времени.

введите описание изображения здесь

Потрясающий проект. Английский перевод будет применен в ближайшее время, так что звезда будет оценена по достоинству

введите описание изображения здесь

person Petr Tripolsky    schedule 28.11.2020