javascript - React,使用 webpack 创建最佳生产包

标签 javascript reactjs webpack webpack-4

今天,我深入了解了 Webpack 的内部结构,并设法使用了它的许多有用功能(通过 Webpack 加载程序),例如 CSS 模块和 Babel 转译器。我想用它来制作一个 React 应用程序(没有 create-react-app)。

这是我的配置文件:

const HtmlWebPackPlugin = require("html-webpack-plugin");
const path = require('path');

module.exports = {

    entry: {
        main: './src/index.js',
    },


    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: '[name].js'
    },

    module: {

        rules: [
            {
                test: /\.js|jsx$/,
                exclude: /node_modules/,
                use: {
                    loader: "babel-loader"
                }
            },
            {
                test: /\.html$/,
                exclude: /node_modules/,
                use: [
                    {
                        loader: "html-loader",
                        options: { minimize: true }
                    }
                ]
            },
            {
                test: /\.css$/,
                exclude: /node_modules/,
                use: [
                    {
                        loader: 'style-loader'
                    },
                    {
                        loader: 'css-loader',
                        query: {
                            modules: true,
                            localIdentName: '[name]__[local]___[hash:base64:5]'
                        }
                    }
                ]

            }
        ]
    },
    plugins: [
        new HtmlWebPackPlugin({
            template: "./src/index.html",
            filename: "index.html"
        })
    ]
};

因为我现在有一个入口点,所以我的整个包都被转换成一个 JS 文件。但是,随着我的 React 应用程序的增长,将 bundle 分成多个 block 可能会更好,这样它们可以更快地下载(这是正确的术语,对吧?)。

问题:

  1. 将应用程序拆分为多个 block 时需要考虑哪些方面?
  2. 如何将应用程序拆分成多个 block ?我是否只输入多个切入点(如果是这种情况,那么什么是战术切入点?)?

最佳答案

您不需要有多个入口点。

你可以基于

  • 路线
  • block 的最大大小
  • 外部依赖 提供单独的 block
  • 在任何有意义的地方对模块使用动态导入

如果您不确定要使用什么参数,请使用 webpack 的 splitchunk 插件 ( https://webpack.js.org/plugins/split-chunks-plugin/) 的默认值。

然后您可以尝试自己的自定义设置,找出最适合您的应用的设置。

关于javascript - React,使用 webpack 创建最佳生产包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51501923/

相关文章:

javascript - 如何解决 Google Visualization - Materials Line 中的重叠问题

javascript - 查找离点击点最近的元素

webpack - 使用 webpack 和 CommonsChunkPlugin 生成 AMD 模块

javascript - 如何使用 Javascript 同时更改同一页面中的两个背景图像?

javascript - JavaScript 中的正则表达式不起作用

javascript - 异步函数后未返回 React Native 元素

android - 错误 : Bundling failed - While trying to resolve module 'react-native-firebase'

css - 如何禁用 Material UI Input 的涟漪效应?

javascript - 使用 Raw-Loader 将 SVG 标记嵌入 vue-component 中

javascript - 将文件合并到 Webpack 的条目中