【问题标题】:Why should we use django-webpack-loader?为什么我们要使用 django-webpack-loader?
【发布时间】:2018-11-28 03:17:03
【问题描述】:

我同时使用 webpack 和 django。现在我每次都将捆绑的资产移动到django的/static/目录,所以我想做更有效的过程。
我读了一些文章,很多人推荐使用django-webpack-loader,但我并不完全理解它的作用。

下面的官方文档我已经看过了。
https://owais.lone.pw/blog/webpack-plus-reactjs-and-django/
https://406.ch/writing/our-approach-to-configuring-django-webpack-and-manifeststaticfilesstorage/

我认为它是用于收集位于 django 项目之外的捆绑资产,但它似乎与在 webpack 中创建从 django 项目到 dist/ 目录的符号链接几乎相同。
django-webpack-loader还有其他有用的功能吗?

【问题讨论】:

标签: django django-webpack-loader


【解决方案1】:

这是一个方便的小工具。这个 webpack 加载器的要点是创建一种机制,以自动方式链接到您的最新包。

提供了一个“render_bundle”模板标签,输出链接以加载到最新的 JS 或 CSS 包中。

标签基于捆绑代码的哈希(因此,如果您的捆绑更改,这将改变)因此浏览器将始终加载您的静态资产的最新版本。在移动设备上进行测试或执行“硬”页面刷新并不简单的情况下,这种缓存清除技术非常有用。

我相信这是通过引用 BundleTracker 输出的模板标签来实现的,它在 webpack-stats.json 中输出有关 webpack 包状态的元数据。

https://www.npmjs.com/package/webpack-bundle-tracker

【讨论】:

  • 我还是不明白使用django-webpack-loader 的好处。我在开发时,总是使用 Shift+Command+R 重新加载页面。这已经保证了浏览器采用已编译的最新 JS 包。
  • 硬刷新在移动浏览器上并不简单,而且通常不为最终用户所知。
【解决方案2】:

我认为您可能会错过 webpack 将附加随机哈希码(因此新构建的缓存)。如果没有一些特殊的逻辑,django 将不知道如何计算哈希。

在我看来,其他回答者提到的所有其他东西都是让你的生活更轻松的额外奖励。

【讨论】:

  • 你可以随时配置 webpack.config.js 跳过 [hash] 部分,只输出一个简单的 filename.js
  • 那么新版本不会破坏缓存。
猜你喜欢
  • 2019-06-06
  • 1970-01-01
  • 2018-09-12
  • 2019-02-21
  • 2019-08-11
  • 2014-06-22
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
相关资源
最近更新 更多