我有一个 React 应用程序,我运行 npm run build 来生成一个构建包,然后上传到 S3。假设 www.test.com/build/
但我有一个 PHP 后端应该负责提供 index.html(来自 www.test.com/index.html)
由于与 S3 存储桶和 PHP 应用程序没有任何联系,我不知道如何处理 React 应用程序中的哈希名称
我无法在没有哈希的情况下生成构建包,因为我会丢失缓存破坏器。
使用 React 应用程序和后端应用程序有哪些好的做法。在这种情况下是 PHP,但我认为问题应该与托管在不同服务器上的 NodeJS 后端相同。
我正在使用 AWS CodePipeline 构建 React 应用程序 (npm run build) 和 php 应用程序 (composer install)
最佳答案
PHP 不需要知道带有或不带有散列的 JS 文件。您的 PHP 服务器将仅提供 index.html 文件。您的 index.html 文件包含入口点 javascript 文件。
<script type="text/javascript" src="/js/vendor.bundle.js"></script>
<script type="text/javascript" src="/js/index.js"></script>
当您的 PHP 服务器提供 index.html 文件时,在客户端的浏览器上,它将使用供应商和索引文件(或任何您的文件名)通过 block 加载必要的 react 和其他 js 代码。
如果您需要将 vendor.bundle.js 和 index.js 与哈希一起使用怎么办?
以下模块将为您提供帮助。
模块 1:https://www.npmjs.com/package/webpack-manifest-plugin 该模块将帮助您跟踪生成的散列文件。
模块 2:https://www.npmjs.com/package/html-replace-webpack-plugin 使用此模块,您可以将入口点文件替换为从模块 1 获得的哈希文件名。
关于php - 在 React 应用程序中使用 PHP 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54318074/