【问题标题】:How to access webpack generated filenames in a plugin?如何在插件中访问 webpack 生成的文件名?
【发布时间】:2019-10-21 20:18:12
【问题描述】:

所以,这是我的情况。我有一个 JavaScript 应用程序,我将哈希附加到文件名,这是 Webpack 输出的标准。这样,浏览器可以安全地缓存内容,而新的加载由更改的文件哈希控制。

我的问题是我需要其他应用程序来访问我的应用程序,并且每次哈希更改时它们都无法更新。所以我需要这样的请求:

https://my-domain.com/assets/js/app.js

被重定向到

https://my-domain.com/assets/js/app.ab12cd34.js

我的应用程序当前使用 nginx 来提供页面,但 nginx 是静态的。我不知道如何配置它来动态识别散列文件名并返回它。

应用正在部署到 Pivotal CloudFoundry 环境。 PCF 支持在 nginx.conf 文件中评估动态 Ruby 代码,因此这似乎是一种简单的解决方法。不幸的是,我的公司要求 nginx.conf 通过一个特殊的解析器来强制执行安全标头。这个解析器只知道 nginx 语法,并且会破坏那里的任何 Ruby 代码。

所以,这让我有了 Webpack。我开始研究 Webpack 在构建过程中修改文件的方法,并在 copy-webpack-plugin 中发现了 transform() 函数。它能够完全按照我的需要修改文件。但是,获取哈希文件名仍然是一个挑战。

所以,我希望有一些方法可以访问这个插件中的哈希文件名,以便我可以将它注入到 nginx.conf 中。

或者,如果有人知道解决我核心问题的另一种方法,我会全力以赴。

【问题讨论】:

    标签: nginx webpack


    【解决方案1】:

    您可以使用webpack-manifest-plugin 创建一个文件名-> 块名/包名映射的清单文件。

    然后,任何需要它的软件都可以使用此清单文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-24
      • 2018-09-26
      • 2020-05-18
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 2018-03-16
      相关资源
      最近更新 更多