人资开发day3遇见的问题

856 阅读1分钟

运行报错:

 ERROR  ValidationError: webpack Dev Server Invalid Options
options should NOT have additional properties
ValidationError: webpack Dev Server Invalid Options

百度了半天尝试了许多方法。。。最后发现是vue.config.js文件中的Proxy,P大写了,应该小写的,js区分大小写。 options should NOT have additional properties image.png

在前端如何区分环境

1.用环境变量调用环境文件中的变量: $ process.env.NODE_ENV # 当为production时为生产环境 为development时为开发环境

2.环境文件: 我们可以在.env.development和.env.production文件中定义变量VUE_APP_BASE_API 我理解的环境文件的记忆方法:env--environment

跨域问题

跨域问题是因为浏览器的同源策略(域名端口协议不一致)导致的。而跨域分为开发环境跨域(开发时)和生产环境跨域(上线时)。我们前端主要解决开发环境跨域问题。 在今天坐的人资项目中我用到了代理的方式来解决跨域。(vue-cli在本地开启的一个服务,通过这个服务可以发起代理请求)

//在vue.config.js中配置代理
module.exports = {
  devServer: {
   // 代理配置
    proxy: {
        // 这里的api 表示如果我们的请求地址有/api的时候,就出触发代理机制
        // localhost:8888/api/abc  => 代理给另一个服务器
        // 本地的前端  =》 本地的后端  =》 代理我们向另一个服务器发请求 (行得通)
        // 本地的前端  =》 另外一个服务器发请求 (跨域 行不通)
        '/api': {
        target: 'www.baidu.com', // 我们要代理的地址
        changeOrigin: true, // 是否跨域 需要设置此值为true 才可以让本地服务代理我们发出请求
         // 路径重写
        pathRewrite: {
            // 重新路由  localhost:8888/api/login  => www.baidu.com/api/login
            '^/api': '' // 假设我们想把 localhost:8888/api/login 变成www.baidu.com/login 就需要这么做 
        }
      },
    }
  }
}