【发布时间】:2020-03-31 00:41:33
【问题描述】:
我的环境
当我开发 vue 项目时,我会跟踪 dist 文件夹中的文件。
我的笔记本电脑
我开发 vue 项目 -> npm(yarn) run build -> git add everthing in dist 文件夹 -> git commit -> push
生产服务器
git pull -> 一切顺利(因为我已经在笔记本电脑上构建了 dist 文件夹)。
我的 .env 文件中有生产服务器和本地主机服务器的 URL
VUE_APP_PRODUCTION_API=https://myprodserver.com/
VUE_APP_LOCAL_API=http://localhost:3000/
当我使用时
vue-cli-service serve,它使用 localhost 服务器 url。
vue-cli-service build,它使用生产服务器 url。
(所以 URL 是在构建时分配的,而不是在运行时分配的)
问题
但我在添加 qa 服务器时遇到了问题。
现在,共有三种环境
1.我的笔记本电脑
2。 qa 服务器
3.生产服务器
我发现 qa 服务器中的 vue 项目尝试与 PRODUCION_API 对话(因为它提取了我在笔记本电脑上构建并提交的生产服务器的 dist 文件夹。
我尝试了什么
我在 qa 服务器中创建了 .env.local 并覆盖了 VUE_APP_PRODUCTION_API
# qa server .env.local
VUE_APP_PRODUCTION_API=http://qaserver.com/
并安装了 npm、yarn
并构建
成功了!但是......问题是它使 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 和安装整个依赖项。 (以前没必要,因为我以前是在笔记本电脑上构建的)
问题
- 我是否必须每次都构建项目才能更改基本 url?
- 从一开始就跟踪 dist 文件夹是否正确?
- 有什么最佳实践可以分享给我吗?
【问题讨论】:
标签: vue.js