如何构建umd版本的材料-ui?

时间:2017-12-02 21:31:50

标签: requirejs material-ui amd umd

material-ui“build:es2015”脚本正在构建commonjs脚本,而不是ES2015     'use strict';

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

etc.

我正试图找到一种方法来构建一个类似于https://reactjs.org/docs/installation.html#using-a-cdn的AMD友好版本的材料。

使用ES2015,我应该可以将typescript编译成AMD捆绑包。源文件看起来非常接近typescript文件,但是将扩展名更改为TSX是不够的......它们实际上不是打字稿文件(它们是什么?)。

另外,我尝试过“build:umd:dev”并不会产生像https://unpkg.com/react@16.2.0/umd/react.development.js那么好的东西,而且它们似乎与requirejs不兼容。

构建真实的umd版本的材料-ui的必要步骤是什么?

背景: 是的,我知道传统的反应开发过程使用webpack,但我正在尝试生成一个从rawgit运行的轻量级,CDN依赖的概念验证应用程序。我有反应和反应部分工作但不是材料 - 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/react@16.2.0/umd/react.production.min',
                'react-dom': 'https://unpkg.com/react-dom@16.2.0/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>

2 个答案:

答案 0 :(得分:2)

为每个版本发布UMD版本。

例如:https://unpkg.com/material-ui@1.0.0-beta.24/umd/

注意:对于版本4,UMD输出将重命名为MaterialUI(之前为material-ui)。有关详细信息,请参阅此pull-request

答案 1 :(得分:0)

好吧,我喜欢TypeScript Namespaces做原型设计,并且已经创建了单独的UMD发行版,通过键入全局对象扩展名

检查源代码和示例应用here

    "msg": [
        " 17:05:13 up 3 days, 13:42,  1 user,  load average: 1.93, 1.45, 1.74",
        "Diameter Time:1 Success:3 Fail:4 Timeout:5 Reject:6"
    ]

我还编写了一些工具来帮助您使应用程序独立于npm,包括路由器,小吃提供商,状态管理器,JSON模板表单生成器,获取提供商,日期和时间选择器。

enter image description here

惊人的项目。即将进行英语翻译,因此将很受好评

enter image description here