我使用构建服务器来构建我的Vue项目,使用由Vue 2模板很好地提供的npm run build
命令。 Vue模板还提供访问可在config
目录下的文件中配置的环境特定数据的功能。比如prod.env.js
等。然后,您可以通过process.env.API_PREFIX
访问该数据,如模板手册中所示。使用Vue webpack模板的独立于环境的构建
我希望能够构建一次代码,然后将相同的构建(如输出在Dist
中定义)部署到多个服务器,但不同的服务器使用不同的配置(不同的API_PREFIX
等)。目前,process.env
引用在编译时由Webpack编译器进行扩展。因此我必须为每个环境重建。
我可以想到一些方法来做到这一点 - 显然配置的加载必须在运行时发生,并且假设它在浏览器中运行并且必须引用某个文件,它必须通过Web服务器单独提供的某些静态JSON配置的AJAX请求,或类似的请求。但我很想知道这里有人会如何处理这个要求。
有几个技巧,但需要更多关于如何确定API_PREFIX的信息。它与应用程序将要访问的域相关吗?你能举出具体的例子吗? – aristidesfl
是的,API前缀是特定于每个环境的配置数据的示例。这对每个部署环境都是不同的域。例如,在“分段”部署环境的构建中,API前缀可能是“https:// staging-api.mycompany.com”。 [虽然原则上来自环境名称并不是可以推导出来的。] – amoe