开发vue项目时,我会跟踪dist文件夹中的文件。
我的笔记本电脑
我开发了vue项目-> npm(yarn)运行build-> git在dist文件夹中添加所有内容-> git commit->推送
生产服务器
git pull->一切都很好(因为我已经在笔记本电脑上建立了dist文件夹)。
我的.env文件中有生产服务器和本地服务器的URL
VUE_APP_PRODUCTION_API=https://myprodserver.com/
VUE_APP_LOCAL_API=http://localhost:3000/
当我使用
vue-cli-service serve
,它使用本地主机服务器URL。
vue-cli-service build
,它使用生产服务器URL。
(因此,URL是在构建时分配的,而不是在运行时分配的)
但是当我添加质量检查服务器时遇到了一个问题。
现在,有三个环境
1。我的笔记本电脑
2。质量检查服务器
3。生产服务器
我发现qa服务器中的vue项目尝试与PRODUCION_API进行对话(因为它拉起了我在笔记本电脑上构建并提交的生产服务器的dist文件夹)。
我在质量检查服务器中创建了.env.local并改写了VUE_APP_PRODUCTION_API
# qa server .env.local
VUE_APP_PRODUCTION_API=http://qaserver.com/
并安装了npm,纱线
并构建
成功了!但是...问题是它会使git status输出变脏。
当我git status
changes:
file removed: dist/file...
file removed: dist/file...
file removed: dist/file...
file removed: dist/file...
我知道我可以.gitignore dist文件夹,并且每当我在每个环境中git pull时都进行构建...但是那会很麻烦。那将使我不得不在生产服务器中安装npm,yarn,并安装整个依赖项。 (因为我以前是在笔记本电脑上构建的,所以之前没有必要)
答案 0 :(得分:1)
理想情况下,您希望使用Github Actions或Gitlab CI之类的工具来部署项目。
这将允许您使用给定目标环境的必要环境变量来构建项目。
通常,dist文件不包含在版本控制中,因为每个从事项目工作的开发人员都会拥有不同的版本,并且您会经常遇到合并冲突。