【发布时间】:2017-07-07 07:44:42
【问题描述】:
我使用构建服务器来构建我的 Vue 项目,使用 Vue 2 模板提供的 npm run build 命令。 Vue 模板还提供了访问特定于环境的数据的能力,这些数据可以在config 目录下的文件中进行配置。诸如prod.env.js 之类的东西。然后您可以通过process.env.API_PREFIX 访问这些数据,如模板手册中所示。
我希望能够构建一次代码,然后将相同的构建(由Dist 中的输出定义)部署到多个服务器,但让不同的服务器使用不同的配置(不同的API_PREFIX 等)。目前,process.env 引用在构建时由 Webpack 编译器扩展。因此,我必须针对每个环境进行重建。
我可以想到几种方法来做到这一点——显然配置的加载必须在运行时发生,并且鉴于它在浏览器中运行并且必须引用某个文件,它必须通过AJAX 请求由 Web 服务器单独提供或类似的一些静态 JSON 配置。但我很想知道这里的任何人将如何处理这个要求。
【问题讨论】:
-
有一些技巧,但需要更多关于如何确定 API_PREFIX 的信息。它与将要访问应用程序的域有关吗?能举出具体的例子吗?
-
是的,API 前缀是特定于每个环境的配置数据示例。对于每个部署环境,这将是一个不同的域。例如,在
staging部署环境的构建中,API 前缀可能是https://staging-api.mycompany.com。 [虽然原则上不能从环境名称推导出来。]
标签: javascript deployment build webpack vue.js