美文网首页Vue.js开发技巧让前端飞Web前端之路
为Vue项目添加配置文件,便于维护全局变量

为Vue项目添加配置文件,便于维护全局变量

作者: 歇歇 | 来源:发表于2018-02-05 15:15 被阅读342次

近期同事接到一个略微罕见的请求,希望能在Vue项目中添加配置文件,以解决每一次环境搭建都需要修改请求IP然后再重新打包的问题。我知道有人想问为什么要频繁搭建新的后台环境,我当然是...不会告诉你们的。

必要性分析

刚听到这个需求的时候,我第一反应是:这个真的有必要吗?又不会真的天天换环境,况且比起环境搭建,build一次的时间占比其实是微乎其微的。没有但是,我第二反应也是第一次那么想的...

不过需求就是需求,再者后来也了解到每一次build都是我开发同事完成的然后发包给运维,这样对客户不是很友好,故开始认真思考这个问题。

思考历程

我首先想到的是需要搭建一个服务,不然js如何取读取配置文件呢?但读取了配置文件我又要怎么赋值给vuex(API公共的IP和端口都放到这里的)中的某个变量呢?并且还伴随着代码被压缩等问题... 所以很快我就放弃了这个打算。

a few minutes later,我想到可以用js充当配置文件,这样就不用去搭建一个服务读配置文件,而可以直接获取。本来需要配置的参数就是在vuex中写的,于是我想能不打包vuex这个问题不也就很好解决了吗。于是我在一个学习群中提问,不过并没有得到可行的方法,倒是提出了新增一个js,并在index.html中引用。我当时想: 但这样不是多余的文件吗?新增的这个文件还是需要解决不被打包这个问题。

之后去查(避免打包)这个问题,在segmentfault中看到/static/目录下的文件不会被打包,故选择了新增一个config.js作为配置文件(在/static/目录下)。

怎么做?

  1. 在Vue项目中的/static/目录下新增文件config.js,用以存储一些可配置的参数。
    config.js
  2. index.html中引用该js,<script src="/static/config.js"></script>
  3. 在eslintrc.js中设置全局变量,否则在使用时eslint会报错: no-undef未定义变量。
    eslint设置
  4. 这里设置的全局变量建议赋值给vuex中的某个变量声明,这样更容易理解,也不会混淆ES6的import\export语法。


    vuex中应用全局变量,给状态量赋值

配置文件中的test属性就此生效,你可以在代码中把他打印到控制台测试。

打包后config.js文件在/dist/static/目录下,如果你在其中配置了API的IP,那么当更换了服务器,则只需修改/dist/static/目录下的config.js就可以正常运行项目了。

相关文章

  • 为Vue项目添加配置文件,便于维护全局变量

    近期同事接到一个略微罕见的请求,希望能在Vue项目中添加配置文件,以解决每一次环境搭建都需要修改请求IP然后再重新...

  • 前端开发指引 -- `VUE `篇

    前端开发指引 -- VUE篇 一、编写目的 为提高团队协作效率, 便于后台人员添加功能, 及前端后期优化维护, 输...

  • nginx配置反向代理解决vue跨域问题

    1、vue项目站点url 2、api接口url 3、在vue项目站点的nginx配置文件中添加: 解释:当访问ht...

  • JS设计模式-单例模式

    单例模式优点 划分命名空间,减少全局变量 组织代码为一体,便于阅读维护 并非所有的对象字面量都是单例,比如模拟数据...

  • stylus如何使用全局变量

    css样式,例如背景色,字体颜色等做一个全局变量,每次使用的时候引用,这样便于维护创建以styl为后缀的stylu...

  • Vue全局变量的实现方式

    创建js文件,添加需要使用的全局变量 1、全局变量模块导入方式 2、全局变量挂载到Vue.ptototype中

  • Vue的组件通讯多种实现方式

    组件化: 组件化是vue的核心思想,它能提高开发效率,方便重复使用,简化调试步骤,提升整个项目的可维护性,便于多人...

  • [学习vue]组件化实战

    组件化 组件化是vue的核心思想,它能提高开发效率,方便重复使用,简化调试步骤,提升整个项目的可维护 性,便于多人...

  • 如何把h5app打包成移动apk

    vue项目 1. 打开自己的vue项目 2. 再项目根目录新建vue.config.js 项目配置文件(防止打包...

  • vue全局变量

    在vue项目中 如何定义全局变量 全局函数 - CSDN博客

网友评论

  • 阳疯子:请问一下 我配置了全局变量,为何组件中依然访问不到
    rules: {
    // allow async-await
    'generator-star-spacing': 'off',
    // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    // 关闭不允许全局变量
    'no-implicit-globals': 0
    },
    globals: {
    'setting': true
    }
    在组件中访问依然是setting is not defined
    阳疯子:@歇歇 我在index.html中引入了,依然没有😂😂
    歇歇:需要引用,在入口(index.html、App.vue、其他任意用到的地方)引用这个js。
    其实道理很简单,你要使用一个js中定义的变量,那么就要先执行(script标签,import/require引用两种方式)这个js。

本文标题:为Vue项目添加配置文件,便于维护全局变量

本文链接:https://www.haomeiwen.com/subject/ejpbzxtx.html