我需要生成两个生产版本。一种用于登台,另一种用于最终生产。我使用vue-cli-service build
创建一个版本。我需要制作两个npm脚本,这些脚本将针对不同的情况使用不同的API端点。
以下是我导出api端点的文件。
src/config/index.js
import dev from "./dev.env.js";
import prod from "./prod.env.js";
let api
if (process.env.NODE_ENV === "production") {
api = dev
}
if (process.env.NODE_ENV === "finalprod") {
api = prod
}
export default api;
在package.json
脚本中,
"build": "vue-cli-service build",
"buildprod": "NODE_ENV=finalprod vue-cli-service build",
这似乎解决了问题。
但是问题在于,当环境更改为finalprod
时,build
命令不会生成生产构建。
我也检查了this url,但无法从中得到解决方案。
ftp
将内部版本上传到提供静态文件的服务器。vue create project-name
答案 0 :(得分:1)
这是您可以尝试解决的一种解决方案。
.env.finalprod.local
在您的环境文件中,您应该声明
NODE_ENV=production
,以便 它将以生产模式构建。如果要指定其他自定义环境变量,请确保 给它加上
VUE_APP_
前缀,否则在构建时将被忽略。
它应该是这样的:
NODE_ENV=production
VUE_APP_API_ENDPOINT=YOUR_API_ENDPOINT_HERE
这意味着您必须为其他环境(例如.env.development.local
和.env.production.local
)使用不同的API端点定义单独的环境文件。
src/config/index.js
let api = process.env.VUE_APP_API_ENDPOINT;
export default api;
package.json
中,将脚本更改为此: "buildprod": "vue-cli-service --mode finalprod"
这将在登台模式下构建一个生产应用程序,如果存在,将使用.env,.env.finalprod或.env.finalprod.local。
请注意,如果您拥有此脚本"buildprod": "vue-cli-service --mode finalprod"
,则还必须使用.finalprod
来命名.env文件,例如.env.finalprod.local
,否则cli无法找到它并且无法生成而不是生产模式下的应用。