node+vue之动态加载配置文件

缺乏、安全感 2023-06-27 12:38 8阅读 0赞

对于后端起家的我来说,前段不能动态加载配置文件,非常介意。于是将前段架修改了一下。

根目录下添加不同环境下的:.env配置文件。目录结构如下;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NhcHRhaW5KYXZh_size_16_color_FFFFFF_t_70

分别添加不同环境下对应的配置文件:

.env
.env.development
.env.outside
.env.production
.env.staging

文件内容:

.env: 默认配置文件,将所涉及到的变量都在这里配制一个默认值。(貌似必须的)

  1. # just a flag
  2. NODE_ENV = 'development'
  3. VUE_APP_CONTEXT_PATH=/
  4. VUE_APP_CONTEXT_PORT=80
  5. VUE_APP_ERMS_API = 'http://192.168.0.222:20002/aa/api'
  6. VUE_APP_ORG_API = 'http://192.168.0.222:10004/bb/api'
  7. VUE_APP_ECM_API = 'http://192.168.0.222'
  8. VUE_APP_FILESDK_API = 'http://192.168.0.222:10003'
  9. VUE_CLI_BABEL_TRANSPILE_MODULES = true

开发环境配置文件,替换.env中配置变量对应开发环境的值,这里和.env一样,因为.env按照开发环境默认配置的:

.env.development

  1. # just a flag
  2. NODE_ENV = 'development'
  3. VUE_APP_CONTEXT_PATH=/
  4. VUE_APP_CONTEXT_PORT=9527
  5. # base api
  6. VUE_APP_ERMS_API = 'http://192.168.0.222:20002/aa/api'
  7. VUE_APP_ORG_API = 'http://192.168.0.222:10004/bb/api'
  8. VUE_APP_ECM_API = 'http://192.168.0.222'
  9. VUE_APP_FILESDK_API = 'http://192.168.0.222:10003'
  10. VUE_CLI_BABEL_TRANSPILE_MODULES = true

生产环境的配置文件:

.env.production

  1. # just a flag
  2. NODE_ENV = 'production'
  3. VUE_APP_CONTEXT_PORT=80
  4. VUE_APP_ERMS_API = 'http://www.myserver.cn:10004/aa/api'
  5. VUE_APP_ORG_API = 'http://www.myserver.cn:10004/bb/api'
  6. VUE_APP_ECM_API = 'http://www.myserver.cn:10011'
  7. VUE_APP_FILESDK_API = 'http://www.myserver.cn:10003'

package.json 中scripts脚本配置添加配置命令如下:

  1. "scripts": {
  2. "dev": "vue-cli-service serve --mode development",
  3. "out": "vue-cli-service serve --mode outside",
  4. "prod": "vue-cli-service serve --mode production",
  5. "build": "vue-cli-service build",
  6. "build:prod": "vue-cli-service build --mode .env.production",
  7. "build:stage": "vue-cli-service build --mode staging",
  8. "preview": "node build/index.js --preview",
  9. "lint": "eslint --ext .js,.vue src",
  10. "lint:fix": "eslint --fix . --ext .js,.vue src",
  11. "test:unit": "jest --clearCache && vue-cli-service test:unit",
  12. "test:ci": "npm run lint && npm run test:unit",
  13. "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
  14. }

例如:”dev”: “vue-cli-service serve —mode development” 就是配置的我们的运行命令对应npm run dev是执行的语句,

--mode development 是指定加载的.env.production配置文件的后边部分。(这样是标准写法,这里不能写全称,否则加载不到)

启动项目时执行命令:

  1. 1. 公司内网启动命令;npm run dev
  2. 2. 生产环境启动命令:npm run prod

以上即可实现,配置文件动态加载配置项。

在vue的js文件中取配置文件的值可以参考如下方式:js文件中直接用process.env.VUE_APP_ERMS_API获取即可

  1. import axios from 'axios'
  2. // create an axios instance 创建一个axios实例
  3. const service = axios.create({
  4. baseURL: process.env.VUE_APP_ERMS_API, // url = base url + request url
  5. // withCredentials: true, // send cookies when cross-domain requests 当进行跨域亲求得时候发送cookie
  6. timeout: 10000// request timeout
  7. })

有了上述,动态加载方式,具体怎么应用就看自己得了。可以让我们切换环境不用改任何代码。

发表评论

表情:
评论列表 (有 0 条评论,8人围观)

还没有评论,来说两句吧...

相关阅读