- yarn build
- gh-pages 工具 链接
npm install gh-pages --save-dev
```jsx …
“name”: “jianshu”, “version”: “0.1.0”,
- “homepage”: “https://okkjoo.github.io/-my_jianshu",//注意仓库名字 “private”: true, “dependencies”: { …
“scripts”: { …
- “predeploy”:”yarn run build”,
- “deploy”: “gh-pages -d build”//新增一个分支名为gh-pages,然后把build文件夹内容放进去 … }
```
yarn run deploy
- 这种方法有坑就是路由会在前面加上仓库名字,显然会让浏览器找不到原本资源所在的路径。
利用 git subtree
不需要安装 gh-pages
只需要修改 package.json 中 “homepage”: “./“,
- yarn build
- git commit -m “test gh-pages”
- git push origin master(我是 git push github master
注意cra默认的 gitignore 忽略了build文件夹,要自行修改
这时候我们的远程仓库的 master 分支下有了 build 这个文件夹,里面就是打包编译之后的文件。
git subtree push —prefix=build origin gh-pages(我是git subtree push —prefix=build github gh-pages
上面这个命令的意思是将master分支下某个文件(如:build)复制一份到 gh-pages 这个新分支下。 这时候通过 setting 与方法一截图操作一样就可以了,最终效果都是一样的,不过你的代码每次迭代之后,都需要手动在部署一下,才能达到线上线下一致
回到GitHub仓库,设置里有个 pages,点击即可,但是发现还有路由问题。:
发送请求都设置为相对路径<**BrowserRouter** basename**=**{**process.env.**PUBLIC_URL}>