3

我正在使用babel-plugin-import插件导入 antd 包。但是,我收到整个捆绑包已导入的警告。

您正在使用一整包的 antd,请使用 https://www.npmjs.com/package/babel-plugin-import来减少 app bundle 的大小。

我的 jsx 的 webpack 配置如下:

{
    test: /\.jsx$/,
    loader: 'babel-loader',
    exclude: [nodeModulesDir],
    options: {
        cacheDirectory: true,
        plugins: [
            'transform-decorators-legacy',
            'add-module-exports',
            ["import", { "libraryName": "antd", "style": true }],
            ["react-transform", {
                transforms: [
                    {
                        transform: 'react-transform-hmr',
                        imports: ['react'],
                        locals: ['module']
                    }
                ]
            }]
        ],
        presets: ['es2015', 'stage-0', 'react']
    }
},

出于某种原因,正在导入整个 antd 包。

4

1 回答 1

2

我解决了这个问题。我创建了一个包searchtabular-antd。该包使用 babel transpiler 输出 javascript。包中的以下行导致了问题:

import { DatePicker, Checkbox, Input, InputNumber } from 'antd'; 

组件应从 lib 手动导入,如下所示:

import DatePicker from 'antd/lib/date-picker';

这修复了使用 searchtabular-antd 的主应用程序中的 antd 大小。

于 2017-06-15T13:16:17.073 回答