美文网首页
webpack4基本使用(四)-跨域-环境变量

webpack4基本使用(四)-跨域-环境变量

作者: Raral | 来源:发表于2020-12-10 19:14 被阅读0次

16 wepack跨域问题

  1. 通过前端代理实现跨域
  2. 如果前端只是模拟数据时,我们可以使用devServer 自带的express模块
devServer:{
        //3. 有服务端 不用代理来处理, 能不能再服务器中启动webpack 端口 服务端口
        
        //2 我们前端只想单纯模拟数据 app = express()
        before(app) {
            app.get("/user", (req,res) => {
                res.json({name:"fsdf--before"})
            })
        },
        //1
        proxy: {//代理 把前端请求 代理到 服务器上地址
            "/api": {
                target: "http://localhost:3000",
                pathRewrite: {
                    "/api":""
                }
            }
        }
    }
  1. 如果服务端是node自己写的可以在服务端启动webpack 保证没有跨域问题
let express = require("express");//自带
let app = express();
let webpack = require("webpack");//自带

//3. 服务端自己写的话 可以启动webpack
//中间件
let middle = require("webpack-dev-middleware");
let config = require("./webpack.config")

let compiler = webpack(config);//加载配置


app.use(middle(compiler));


app.get("/user", (req,res) => {
    res.json({name:"fsdf"})
})

app.listen(3000,() => {
    console.log("服务器开启2")
});

17 webpack的 resolve选项(对引入的第三方包 配置,起别名,查找文件顺序,查找扩展名的属性)

 resolve: {//解析第三方模块 引入的是js
         modules: [path.resolve("node_modules")],//第三方包自动在这个目录下查找
         extensions: [".js",".css",".json"],//扩展名,比如引入 "./stye"  先查找js css json 顺序 
         mainFields: ["style", "main"],//查找时的顺序 先查找style  再查找 main
         alias: {//给目录起别名
            // bootstrap: "bootstrap/dist/css/bootstrap.css"//1.
         }

    },

18 定义环境变量

  1. 通过webpack内置插件可以定义变量(不推荐的)
  plugins: [
        new webpack.DefinePlugin({
            DEV: " 'development' ",   // 会把 dev 变量 定义到 webpack中
            DEV2: JSON.stringify('production'),
            FLAG: "ture"
        }),
    
    ],
    //普通js模块
    let url = "";
if(DEV == "development") {
    url = "http://localhost:3000"
}else {
    url="http://www.xxxx.com"
}

console.log(url,"-------------------");
  1. 一般我们喜欢通过 webpack.dev.js和webpack.prod.js 文件来控制不同环境下的配置, 需要 按照 webpack-merge 包
//webpack.base.js 通用的配置
//webpack.dev.js  开发环境配置
let {smart } = require("webpack-merge");
let base = require("./webpack.base.js");
module.exports = smart(base,{
    model: "development",
    // 开发环境配置
})
//webpack.prod.js 生产环境配置
let {smart } = require("webpack-merge");
let base = require("./webpack.base.js");
module.exports = smart(base,{
    model: "production"
    // 生产环境配置
})

相关文章

网友评论

      本文标题:webpack4基本使用(四)-跨域-环境变量

      本文链接:https://www.haomeiwen.com/subject/cxvrgktx.html