记一次项目构建部署的总结
前言
暑假里跟着鱼皮的yuindex
项目写了个web终端的小玩具,完成的终端命令不多,但是大体上成型了。由于我打算做一个纯前端的项目,并没有写后端api,这样也方便我最终直接部署到Github Pages上(这样就不用花钱了hh)。
项目使用vite构建,并使用了ts。在构建部署时遇到了一些问题,由于是第一次将前端项目发布到github pages上,这里记录下。
生成了额外的源映射文件
例如在执行了pnpm run build
后,虽然生成了dist文件夹和其中的内容,但是源文件中的.ts
文件会额外生成.js
和.js.map
文件,.vue
文件会额外生成.vue.js
和.vue.js.map
文件:
很明显这些额外生成的文件我们在发布部署项目时用不上,而且也无需提交到git上。摸索一番后,知道了这是TypeScript编译器生成的,我们需要修改项目的tsconfig.json
文件。
对于.map
文件:
1 | { |
对于ts生成的对应的js文件:
1 | { |
如何部署到Github Pages
在解决完前面的问题后,我们就可以将dist目录提交到github上了(记住要在.gitignore文件中排除dist目录),这里我们可以使用:
1 | git subtree push --prefix dist origin gh-pages |
这会将项目的子目录dist推送到远程仓库的gh-pages分支,如果远程仓库没有gh-pages分支,Git 会自动创建它并推送内容。
接着在Github仓库的Settings中设置部署的位置:
Github Pages项目路径错误
由于kerolt.github.io
用作了我的博客,这个项目只能作为子项来部署,也就是通过kerolt.github.io/web-terminal
来访问。完成前面的步骤后,我虽然能访问,但是其中的内容无法显示,其原因为无法正确获取对应的文件。
这是因为相当于是在嵌套的公共路径下部署项目,在vite中需指定 base
配置项:
1 | // vite.config.ts |
至此,项目已经可以通过https://kerolt.github.io/web-terminal/来访问。