vue 多环境打包并支持动态修改

vue 多环境打包并支持动态修改

首先实现 开发环境与生产环境 配置

  • 配置文件
let devConfig = {
    url:'http:xxxx',
    // xxxx
}
let produConfig = {
    url:'http:xxxx',
    // xxxx
}
let config = produConfig
if (process.env.NODE_ENV === 'development') {
    config = devConfig
}
// $1
export default config

此时 npm run build或dev 会根据NODE_ENV进行判断使用

  • 如果有其他或更多配置文件 需要以下操作

    • 通package.json文件目录下新建 .env.xxx(您的配置名称)

      NODE_ENV = xxx(您的配置名称)
      
    • 并在package.json中加入scripts运行命令(这里是vuelic,如果有webapck或其他的用相应命令)

      "xxx": "vue-cli-service xxx",
      
    • 然后操作其上 $1

  • 需求:打包后dist 需要动态设置配置文件

    • 同package.json目录:public->static->config.js(如果没有新建)

    在这里插入图片描述

    • config就是配置文件,这样打包后dist会多出一个static文件夹并含有config.js此时修改dist的中config.js是无效的

    • 因为:通过以上方式,config.js是存在vue中的main.js文件的引用链中的,这样webpack会处理成一个js文件,所以修改外面的config.js文件不会影响打包后的js

在这里插入图片描述

可以看出config里的配置是被打包到app.xxx.map,这样你修改外层config.js 肯定是失效的

  • 解决方法

    • 需要config.js 脱离 引用链

      var _$devConfig = {
          url:'',
          // xxxx
      }
      var _$produConfig = {
          url:'',
          // xxxx
      }
      
    • 通过html入口文件引入(尽量优先加载)

       <script src="./static/config.js"></script>
      

      注意:这里默认入口是public,可以从static开始引入

    • 引用判断

      let config = window._$produConfig
      if (process.env.NODE_ENV === 'development') {
          config = window._$devConfig
      }
      
    • 这样打包就会将public 的config.js 抛出,并webpack不会去处理

_$devConfig

}
```
  • 这样打包就会将public 的config.js 抛出,并webpack不会去处理

  • 此时修改dist中的config.js 是会实时替换的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tommyrunner

你的支持,就是我的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值