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

IT技术 reactjs react-router create-react-app react-scripts surge.sh
2021-05-04 08:22:02

我的情况:

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

可能的解决方案:

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

问题:

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

1个回答

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

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

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

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