5

我的情况:

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

可能的解决方案:

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

问题:

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

4

1 回答 1

8

我决定的答案是在我的 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"

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

如果有人有更好的建议,仍然对其他解决方案持开放态度。

于 2016-09-22T12:58:31.293 回答