Frontend Dynamic deployment configuration for Vue

参考:

https://stackoverflow.com/questions/53010064/pass-environment-variable-into-a-vue-app-at-runtime

 

1. Add JS file:  /public/config.js

const config = (() => {
  return {
    "VUE_APP_BASEURL":"https://channel-dev.iptiqtap.com/eb-service-partner",
  };
})();   

2. Modify HTML file to add additional line:  /public/index.html

<script src=<%= BASE_URL %>"config.js"></script>

3. Modify JS file: /src/api/base.js

let baseUrl = {
    api: "",
};
baseUrl.api = config.VUE_APP_BASEURL || process.env.VUE_APP_BASEURL;
export const API = baseUrl.api

4. Modify JS file: /vue.config.js

publicPath: process.env.NODE_ENV === 'production' ? './' : './',

5. package.json 

// Load config values directly from config.js
module: { rules: [{ test:
/config.*config\.js$/, use: [{ loader: 'file-loader', options: { name: 'config.js' }, }] }] }

 

// Exclude config.js from built package
if (process.env.NODE_ENV === "production") {
    config.plugin("copy").tap(opts => {
        opts[0][0].ignore.push({
            glob: "config.js"
        });
        return opts;
    });
}

 

posted @ 2021-04-01 09:56  xiluhua  阅读(56)  评论(0编辑  收藏  举报