reactjs - 有没有办法让 `react-scripts` 在构建的根目录中包含额外的文件?

标签 reactjs react-router create-react-app react-scripts surge.sh

我的情况:

我在 Surge 上托管一个使用 create-react-app 创建的应用。为了让 Surge 让 react-router 处理路由,我必须在根目录中添加 200.html,为了处理 404,我必须在根目录中添加 404.html 。问题是,使用 npm run build 时,只有 index.htmlfavicon.ico 被添加到构建目录的根目录中。 p>

可能的解决方案:

我可以通过在 package.json react-scripts build && cp 200.html 404.html build 中创建 build 脚本来复制其他文件。

问题:

是否有更好的方法让 react-scripts 将额外的文件添加到构建的根目录,而不是依赖于 package.json 中的 bash 脚本?

最佳答案

我决定的答案是在我的 package.json 中使用 bash 脚本,正如我最初怀疑的那样,但我决定在部署脚本而不是构建脚本中执行文件操作,并将 index.html 重命名为 200.html as suggested by the create-react-app docs 而不是复制额外的文件;

"build": "react-scripts build",
"deploy": "npm run build && mv build/index.html build/200.html && surge build mydomain.com"

我认为在部署脚本而不是构建脚本中执行文件操作是正确的解决方案,因为这种更改对于部署环境来说是唯一的,这意味着,如果我在 Surge 之外的其他地方部署,我可能不想重命名索引文件。

如果有人有更好的建议,仍然愿意接受其他解决方案。

关于reactjs - 有没有办法让 `react-scripts` 在构建的根目录中包含额外的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39639015/

相关文章:

node.js - 升级到 Babel 7 后无法分配给对象的只读属性 'exports' ERROR

javascript - 模拟 ("click")在弹出的react-create-app项目测试中不会导致重新渲染

javascript - 使用 react-beautiful-dnd 嵌套拖放

javascript - webpack 错误意外 token

javascript - 如何在循环中推送对象数组中的值?

reactjs - 类组件内的react-router-dom useParams()

javascript - 在 webpack 中通过代码分割在服务器端渲染组件

javascript - 未调用 Checkbox 的 onChange 函数

reactjs - 使用 create-react-app react-scripts 的 Dotenv 问题/错误

android - Expo - 网络响应超时错误 (create-react-native-app) (Windows 10)