【问题标题】:Where do the webpack output files from the react-hot-loader go?react-hot-loader 的 webpack 输出文件去哪了?
【发布时间】:2015-08-12 14:13:54
【问题描述】:

让我先说我设置的所有内容都有效,这只是一个困扰我的问题,我很想得到答案。我正在使用 react-hot-boilerplate 项目 (https://github.com/gaearon/react-hot-boilerplate)。然而,在webpack.config.js,这个设置让我困惑不已:

output: {
  path: path.join(__dirname, 'dist'),
  filename: 'bundle.js',
  publicPath: '/static/'
},

在这个配置中,看起来输出文件应该进入项目根目录下的dist 文件夹。即使我手动创建dist 文件夹(我知道我不应该这样做),也不会输出任何文件。然而一切都很好;如果我更改组件中的某些内容,应用程序会加载并热重新加载。这个输出文件到底去哪儿了?

【问题讨论】:

    标签: javascript reactjs webpack


    【解决方案1】:

    react-hot-boilerplate 的所有繁重工作(就热重载文件而言)都由 webpack-dev-server 依赖项完成。

    webpack-dev-server 反过来使用 webpack-dev-middleware 来处理文件的服务(来自 express)。

    This bit of documentation about Webpack Dev Server 应该可以让您很好地了解该机制的工作原理:

    使用这个配置 webpack-dev-server 将提供静态文件 您的构建文件夹并观察您的源文件是否有更改。什么时候 进行了更改,捆绑包将被重新编译。这个修改过的捆绑包 在 publicPath 中指定的相对路径从内存中提供 (见 API)。它不会被写入您配置的输出目录。 在捆绑包所在的相同 url 路径中已经存在捆绑包的位置 内存优先。

    例如,通过上面的配置,您的捆绑包将可用 在 localhost:8080/assets/bundle.js

    这是来自 webpack-dev-middleware 文档的一个很好的部分:

    webpack-dev-middleware 是一个基于连接的小型中间件 中间件堆栈。它使用 webpack 在内存中编译资产并 为他们服务。当编译运行对服务的每个请求时 在我们有一个稳定的包之前,webpack 资产被阻止。

    因此,在开发服务器内部,文件被写入内存文件系统,然后提供服务。资产端点从内存中的位置提供文件,并创建一个 Web 套接字连接以推动进一步的更改。

    【讨论】:

      猜你喜欢
      • 2016-02-28
      • 2020-01-01
      • 2016-06-14
      • 2018-02-11
      • 1970-01-01
      • 2015-12-03
      • 2023-03-04
      • 2017-01-06
      • 2018-01-22
      相关资源
      最近更新 更多