vue webpack环境变量的使用

1,242 阅读1分钟

vue webpack环境变量的使用

package.json文件中定义脚本:

"scripts": {
    "serve": "vue-cli-service serve",
    "serve:no-mock": "cross-env MOCK=none vue-cli-service serve",
    "build": "vue-cli-service build",
    "test:unit": "vue-cli-service test:unit",
    "lint": "vue-cli-service lint"
  }

其中的cross-env是因为在windows环境和其他环境不同无法直接使用环境变量,通过cnpm i cross-env --D安装依赖,之后在各个平台就可以使用了。

vue.config.js通过process.env变量取得参数,如下所示:

bypass: function(req, res) {
          if (req.headers.accept.indexOf("html") !== -1) {
            console.log("Skipping proxy for browser request.");
            return "/index.html";
          } else if (process.env.MOCK !== "none") {
            // 如果请求的不是静态页面则走这里代理
            let name = req.path
              .split("/api/")[1]
              .split("/")
              .join("_");
            let path = `./mock/${name}`;
            let mock = require(path);
            let result = mock(req.method);
            delete require.cache[require.resolve(path)];
            return res.send(result);
          }
        }

注意在使用时通过命令行运行npm run serve:no-mock