首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在用webpack 4创作图书馆时,如何分割分块?

在用webpack 4创作图书馆时,如何分割分块?
EN

Stack Overflow用户
提问于 2018-08-13 22:33:43
回答 1查看 1.9K关注 0票数 16

我正在尝试向私有存储库发布一个自定义的react组件。

我使用react-loadable按需加载子组件。在本地运行时,一切正常。index.js文件在需要时正确地向chunk.js文件发出请求。但是,当发布并从另一个项目中使用时,该组件在尝试请求子组件块时会遇到404错误。在编写库时,我应该如何分割块并按需加载它们?这可能吗,还是我想错了?

这是我的webpack.config.js,以防这是一个简单的配置问题:

代码语言:javascript
复制
module.exports = () => ({
    context: __dirname,
    mode: 'development',
    entry: './src/index.jsx',
    output: {
        path: path.join(__dirname, './dist'),
        filename: "index.js",
        library: "reactcombobox",
        libraryTarget: "umd",
        publicPath: path.join(__dirname, './dist'),
        umdNamedDefine: true
    },
    plugins: [
        new webpack.LoaderOptionsPlugin({ options: { context: __dirname}}),
        new CleanWebpackPlugin([path.join(__dirname, './dist')], {verbose: true, allowExternal: true})
    ],
    module: {
        rules: [
            {
                test: /.jsx?$/,
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: [
                            ['@babel/preset-env', {
                                "targets": {
                                    "browsers": ["last 4 Chrome versions"]
                                }
                            }],
                            '@babel/preset-react'
                        ],
                        plugins: [
                            '@babel/plugin-transform-react-jsx',
                            '@babel/plugin-proposal-class-properties',
                            '@babel/plugin-syntax-dynamic-import'
                        ]
                    }
                }
            },
            {
                test: /.css$/,
                use: ["style-loader","css-loader"]
            }
        ]
    },
    externals: {
        react: {
            root: 'React',
            commonjs2: 'react',
            commonjs: 'react',
            amd: 'react',
        },
        'react-dom': {
            root: 'ReactDOM',
            commonjs2: 'react-dom',
            commonjs: 'react-dom',
            amd: 'react-dom',
        }
    },
    resolve: {
        extensions: ['*', '.js', '.jsx']
    }
});
EN

回答 1

Stack Overflow用户

发布于 2022-07-15 01:38:42

如果组件没有相对,请拆分到更多文件,并使用导出{a1,a2};不要使用可加载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51831438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档