reactjs - Reactjs 应用程序的 webpack 配置中的多个模块用于多个入口点

标签 reactjs webpack

如果有多个入口点,这是我得到的示例:

module.exports = {
    entry: {
        user1: path.join(__dirname, './client/app1.js'),
        user2: path.join(__dirname, './client/app2.js'),
        user3: path.join(__dirname, './client/app3.js')
    },
    output: {
        path: path.join(__dirname, './static/bundle/'),
        filename: '[name].js'
    },
    ...
}

但是,我对“条目”一词感到困惑。是指入口url吗?如果用户访问 root 然后访问另一个页面怎么办?

例如,假设我有一个网站 example.com 和另外两个页面 example.com/registerexample.com/contact 。现在我想获取 example.com 的通用文件,并仅加载 example.com/register 中的注册模块代码和 example.com/contact 中的联系人模块代码。入口点相同,example.com。上述解决方案在这种情况下有效吗?

最佳答案

But, I am confused about the term entry. Does it mean the entry url?

没有。是webpack开始打包的入口。如果你的 webpack 配置中有多个条目,那么将会有多个输出包。这就是您输出的文件名中使用 [name].js 的原因。

您需要确保正确的 bundle 可用于加载的任何特定页面。

<小时/>

回答评论中的问题:

如果我明白你想要做什么,我相信你可以使用CommonsChunkPlugin为每个页面构建一个公共(public)包和一个条目。

所以你的 webpack 配置可能看起来像这样

module.exports = {
    entry: {
        index: path.join(__dirname, './src/index.js'),
        register: path.join(__dirname, './src/register.js'),
        contact: path.join(__dirname, './src/contact.js')
    },
    output: {
        path: path.join(__dirname, './static/bundle/'),
        filename: '[name].js'
    },
    plugins: [
        new CommonsChunkPlugin("commons.js")
    ]
    ...
}

那么你的索引页面会是这样的

<html>
    <head></head>
    <body>
        ...
        <script src="static/bundle/commons.js"></script>
        <script src="static/bundle/index.js"></script>
    </body>
</html>

注册页面类似于

<html>
    <head></head>
    <body>
        ...
        <script src="static/bundle/commons.js"></script>
        <script src="static/bundle/register.js"></script>
    </body>
</html>

联系页面类似于

<html>
    <head></head>
    <body>
        ...
        <script src="static/bundle/commons.js"></script>
        <script src="static/bundle/contact.js"></script>
    </body>
</html>

关于reactjs - Reactjs 应用程序的 webpack 配置中的多个模块用于多个入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44156492/

相关文章:

Symfony Webpack encore 运行时出错。加演 : Permission denied

javascript - 使用 nodeFetch 在 JSON API 响应中正确显示特殊字符

javascript - ComponentwillMount 被调用了两次

javascript - "prevState"和 "prevProps"在 React Native 中的行为不符合预期

javascript - data.json不是reactjs使用Fetch API的函数

node.js - 是否可以使用 webpack 热重载服务器端代码?

javascript - 在 React 中是否可以使用钩子(Hook)来填充由 array.map() 生成的各个输入?

javascript - 模块解析失败 : Unexpected token

javascript - 如何在 NextJs 中生成 UUID?

javascript - 无法让 bootstrap-sass 与 webpack 一起工作