vue.js - Vue.js 环境配置
问题描述
我不想使用 Vue.js 创建客户端应用程序。目前我面临一个问题:如何获取后端服务的地址?
我对应该回答该问题的解决方案有一个主要限制:最终的客户端工件(构建过程的结果,“vue-cli-service build”)必须与环境无关。这个很重要!这意味着绝对不应该内置特定于环境的信息。如果我的后端服务的地址发生变化,则不必构建新的客户端工件。必须可以重新配置生产环境并重用当前的客户端工件。
我的方法是添加一个额外的配置文件,该文件由同样提供我的 Vue.js 客户端的同一 Web 服务器提供:/configuration.json 或类似的东西。这个配置文件可以包含我需要的信息。这种方法可以分为 3 个子任务: (a) 向 Vue.js 客户端添加功能以从 Web 服务器(也提供客户端)读取 configuration.json。这应该很容易。(b) 想办法让生产网络服务器传递这个 configuration.json。我已经对此有了一些想法。(c) 想办法让本地开发服务器传递额外的 configuration.json。
我现在最大的问题是(c)。不知道如何配置本地开发服务器,由“vue-cli-service serve”启动。
任何想法如何解决(c)?也许您还知道更好的方法?
解决方案
我只是对另一个问题给出以下答案,但它也可能适用于您的问题。如果您需要从 JSON 文件加载特定预设。我猜如何生成该 JSON 文件是一个单独的问题。
我曾经遇到过类似的情况,需要调整一些预设而不是每次都重建项目。我最终移动了在异步 Axios 函数中呈现应用程序的 Vue 对象。当然它会影响加载时间,因为它等待 JSON 文件被加载,在我的情况下,这不太重要。这是此类设置的摘要。
axios.get('./config.json')
.then(function(response) {
let config = response.data
//commit data to vuex store for example
new Vue({
store,
render: h => h(App)
}).$mount('#app')
})
.catch(function(error) {
console.log(error)
})
推荐阅读
- r - 如何使用 for 循环重命名另一个列表中的列表元素?
- function - 有没有办法向 NavigationLink 添加额外的功能?SwiftUI
- ggplot2 - geom_violin using the weight aesthetic unexpectedly drop levels
- java - 具有多个 where 条件的右外连接
- jenkins - Is there a way to log changes in Jenkins server configuration?
- ansible - How to combine a fileglob within a loop
- python - QMainwindow PyQt5中的背景图片
- java - 我怎么知道我的 Observable 课程发生了什么变化?
- http - Elixir HttpPoison not working to send multipart/form-data requests
- recursion - 下面算法时间复杂度的解释