如何使用webpack准备反应组件作为外部包?

时间:2017-03-27 17:02:28

标签: reactjs webpack webpack-externals

我在github上有反应组件,它是<table>的简单包装,功能很少。我使用webpack来构建我的项目。这是在react-create-app之后继承的webpack配置:

module.exports = {
    bail: true,
    devtool: 'source-map',
    entry: {
        index: paths.appIndexJs
    },
    externals : {
        react: 'react'
    },
    output: {
        path: paths.appBuild,
        filename: 'index.js',
        publicPath: publicPath,
        library: "ReactSimpleTable",
        libraryTarget: "umd"
    },
    resolve: {
        fallback: paths.nodePaths,
        extensions: ['.js', '.json', '.jsx', '']
    },
    module: {
        preLoaders: [
            ... preloaders ...
        ],
        loaders: [
            ... loaders ...
        ]
    },
    plugins: [
        new webpack.DefinePlugin(env),
        new webpack.optimize.OccurrenceOrderPlugin(),
        new webpack.optimize.DedupePlugin(),
        new ExtractTextPlugin('static/css/[name].[contenthash:8].css'),
    ],
    node: {
        fs: 'empty',
        net: 'empty',
        tls: 'empty'
    }
};

现在,当我在另一个项目中使用我的组件(作为github的外部包)时,我收到了与该问题相关的警告:https://facebook.github.io/react/warnings/dont-call-proptypes.html

如果我从webpack配置中删除externals一切正常,但我的输出文件大约是130kB(原文如此!)。在webpack配置中externals,反应被排除在index.js之外,它的权重约为35kB(非缩小)。但是我得到了警告:/

我想知道如何从构建中排除反应并减轻警告。我不会以任何不寻常的方式使用PropTypes,因此来自https://facebook.github.io/react/warnings/dont-call-proptypes.html的建议无关紧要。

我只是想让用户导入我的组件并假设他们已经在依赖项中做出反应......

0 个答案:

没有答案