webpack 不同环境变量控制台打印包更新时间

236 阅读1分钟

先看效果(非最终效果,因为产品要求在生产环境不展示,生产环境上的配置文件在运维那边,绕了一下弯路,在env文件上不设置名称,这样生产环境会继承env环境变量,不展示)

1RmlkOxGHd.jpg

实现过程:

1.在vue.config.js中设置要打印的文案

  1. 在.env文件中设置环境变量

  2. 在index文件中用小胡子语法塞进去

// vue.config.js

const consoleMsg = `当前环境:${process.env.VUE_APP_ENV_NAME}  ---  更新打包时间:${new Date().toLocaleString()}`;
module.exports = {
  chainWebpack(config) {
    config.plugin('html').tap((args) => {
      args[0].consoleMsg = process.env.VUE_APP_ENV_NAME ? consoleMsg : '';
      return args;
    });
  },
};
// 环境变量

// 221环境
VUE_APP_ENV_NAME=221

// test环境
VUE_APP_ENV_NAME=test

...
// index文件

// 头部展示
 <meta name="time" content="<%= htmlWebpackPlugin.options.consoleMsg %>"/>
 
// 或者控制台打印
<% if( htmlWebpackPlugin.options.consoleMsg) { %>
<script>console.log("<%= htmlWebpackPlugin.options.consoleMsg %>");</script>
<% } %>