国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Webpack.devServer 配置項(xiàng)如何使用?附devServer完整示例

這篇具有很好參考價值的文章主要介紹了Webpack.devServer 配置項(xiàng)如何使用?附devServer完整示例。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

前言: 我們在平常本地開發(fā)時,可能經(jīng)常需要與后端進(jìn)行聯(lián)調(diào),或者調(diào)用一些api,但是由于瀏覽器跨域的限制、開發(fā)與生產(chǎn)環(huán)境的差異、http與https等問題經(jīng)常讓聯(lián)調(diào)的過程不夠順暢。所以本文介紹一下webpack的devServer中的proxy配置項(xiàng)。接下來讓我們先看一下這個配置項(xiàng)的基本使用:


基本使用

  1. 基本代理配置:如果你有一個在localhost:3000上的后端,你可以通過簡單的配置將/api路由代理到這個后端服務(wù)器。webpack會對所有本地發(fā)出的前綴為/api的請求,轉(zhuǎn)發(fā)到localhost:3000
   proxy: {
     '/api': 'http://localhost:3000',
   }
  // 示例
  // 假設(shè)你本地的前端服務(wù)跑在8080端口
  axios.get('/api/user/info') // 會被轉(zhuǎn)發(fā)到 -> localhost:3000/api/user/info
  axios.get('/user/info') // 不會被轉(zhuǎn)發(fā), localhost:8080/user/info
  1. 路徑重寫:如果你不希望在代理請求時傳遞原始路徑(例如/api),可以使用pathRewrite來重寫它。這里的^/api: ''的意思是匹配接口路徑中的/api,并將其替換為空字符串
  • 在這個例子中,任何以 /api 開頭的請求路徑在轉(zhuǎn)發(fā)之前都會將 /api 部分替換為空字符串。例如,如果你發(fā)起一個請求到 /api/users,那么實(shí)際發(fā)送到后端服務(wù)器的請求路徑將是 /users。
  • ^:匹配字符串的開始部分。
  • target 是后端的地址
  • 最后的請求路徑會是:http://localhost:3000/users
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        pathRewrite: { '^/api': '' },
      },
    }
    
  1. 處理HTTPS和無效證書:默認(rèn)情況下,代理不會接受運(yùn)行在HTTPS上且證書無效的后端服務(wù)器。要允許這樣的配置,可以將secure選項(xiàng)設(shè)置為false。

    proxy: {
      '/api': {
        target: 'https://other-server.example.com',
        secure: false,
      },
    }
    
  2. 條件代理:通過一個函數(shù)判斷是否需要代理。例如,對于瀏覽器請求,你可能希望提供一個HTML頁面,而對于API請求,則希望代理它。

    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        bypass: function (req, res, proxyOptions) {
          if (req.headers.accept.indexOf('html') !== -1) {
            console.log('Skipping proxy for browser request.');
            return '/index.html';
          }
        },
      },
    }
    
  3. 多路徑代理:如果你想將多個特定路徑代理到同一個目標(biāo),可以使用具有context屬性的對象數(shù)組。

    proxy: [
      {
        context: ['/auth', '/api'],
        target: 'http://localhost:3000',
      },
    ]
    
  4. 改變原始主機(jī)頭:代理默認(rèn)保持原始的主機(jī)頭。如果需要,可以通過設(shè)置changeOrigintrue來改變這個行為。

    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: true,
      },
    }
    

devServer配置示例

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    // 入口文件配置
    entry: './src/index.js',

    // 輸出文件配置
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
    },

    // 開發(fā)服務(wù)器配置
    devServer: {
        contentBase: path.join(__dirname, 'dist'),
        compress: true,
        port: 9000,
        proxy: {
            // 配置代理規(guī)則 '/api'
            '/api': {
                target: 'http://localhost:3000', // 目標(biāo)服務(wù)器地址
                pathRewrite: { '^/api': '' }, // 路徑重寫,將 '/api' 替換為 ''
                secure: false, // 如果是 https 接口,需要配置為 true
                changeOrigin: true // 需要虛擬托管站點(diǎn)
            },
            // 你可以在這里繼續(xù)添加更多的代理規(guī)則
        }
    },

    // 插件配置
    plugins: [
        new HtmlWebpackPlugin({
            template: './src/index.html'
        })
    ],

    // 模塊配置
    module: {
        rules: [
            // 在這里添加 loader
        ]
    }
};

在這個配置中:

  1. entryoutput 分別配置了入口和輸出文件。

  2. devServer 是開發(fā)服務(wù)器的配置:

    • contentBase 指定了靜態(tài)文件的位置。
    • compress 開啟 gzip 壓縮。
    • port 設(shè)置開發(fā)服務(wù)器的端口為 9000。
  3. devServer.proxy 是重要的代理配置部分:

    • 針對任何以 /api 開始的請求,代理規(guī)則會將請求轉(zhuǎn)發(fā)到 http://localhost:3000 上。
    • pathRewrite 將路徑中的 /api 替換為空字符串,這意味著例如 /api/user 會被轉(zhuǎn)發(fā)為 http://localhost:3000/user。
    • secure: false 表示接受對 https 的代理,這在目標(biāo)服務(wù)器使用自簽名證書時很有用。
    • changeOrigin: true 用于控制 Host 頭的值。如果為 true,Host 頭會被修改為目標(biāo) URL 的主機(jī)名。
  4. pluginsmodule 分別用于配置 Webpack 插件和模塊加載器。文章來源地址http://www.zghlxwxcb.cn/news/detail-746443.html

到了這里,關(guān)于Webpack.devServer 配置項(xiàng)如何使用?附devServer完整示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 什么是webpack?如何在項(xiàng)目中安裝配置webpack?

    webpack 是前端項(xiàng)目工程化的具體解決方案。 它提供了友好的前端模塊化開發(fā)支持,以及代碼壓縮混淆、處理瀏覽器端 JavaScript 的兼容性、性能優(yōu)化等強(qiáng)大的功能。 讓程序員把工作的重心放到具體功能的實(shí)現(xiàn)上,提高了前端開發(fā)效率和項(xiàng)目的可維護(hù)性。目前企業(yè)級的前端項(xiàng)目開

    2024年02月12日
    瀏覽(20)
  • vue全家桶進(jìn)階之路48:Vue3 跨域配置devServer的參數(shù)和設(shè)置

    devServer 是一個用于配置開發(fā)服務(wù)器的選項(xiàng)對象。它可以用來配置服務(wù)器的各種選項(xiàng),例如代理,端口號,HTTPS 等。 以下是一些常用的 devServer 參數(shù)和設(shè)置: port :指定開發(fā)服務(wù)器的端口號,默認(rèn)為 8080 。 host :指定開發(fā)服務(wù)器的主機(jī)名,默認(rèn)為 localhost 。 https :開啟 HTTPS,可

    2023年04月21日
    瀏覽(25)
  • 微信小程序使用canvas畫布生成二維碼海報分享圖片(完整示例代碼)

    微信小程序使用canvas畫布生成二維碼海報分享圖片(完整示例代碼)

    canvas.js //獲取應(yīng)用實(shí)例 const app = getApp() Page({ /** 頁面的初始數(shù)據(jù) */ data: { // canvas _width: 0, //手機(jī)屏寬 _heigth: 0,//手機(jī)屏高 swiperHeight: 300,//主圖圖片高度 canvasType: false,//canvas是否顯示 loadImagePath: ‘’,//下載的圖片 imageUrl: ‘https://cos.myfaka.com/car/service/1.jpg’, //主圖網(wǎng)絡(luò)路徑 codeU

    2024年04月12日
    瀏覽(103)
  • 如何使用webpack打包一個庫library,使用webpack打包sdk.

    如何使用webpack打包一個庫library,使用webpack打包sdk.

    用webpack打包時長會隨著代碼增加而變長,代碼量可能比較大的可以參考我的另一篇使用vite打包sdk文章. 使用vite打包libary模式打包sdk 如果你需要自己封裝一些包給別人使用,那么可以參考以下方法 經(jīng)過以上步驟后會生成一個library文件夾,里面包含一個package.json文件。然后簡單修

    2024年02月13日
    瀏覽(18)
  • Java中日期時間格式化方法SimpleDateFormat和DateTimeFormatter使用完整示例及區(qū)別說明

    Java中日期時間格式化方法SimpleDateFormat和DateTimeFormatter使用完整示例及區(qū)別說明

    示例代碼: 示例截圖: ?這里完整的用兩種方法分別實(shí)現(xiàn)了日期和String的來回轉(zhuǎn)換,鑒于SimpleDateFormat早已過時,且非線程安全,所以推薦大家首選使用DateTimeFormatter,用法基本都是差不多的。變化不大。但是DateTimeFormatter需要Java Level 8(8 - Lambdas, type annotations etc.),需留意。

    2023年04月09日
    瀏覽(26)
  • webpack 和 ts 簡單配置及使用

    webpack 和 ts 簡單配置及使用

    如何使用webpack 與 ts結(jié)合使用 新建項(xiàng)目 ,執(zhí)行項(xiàng)目初始化 會生成 安裝依賴 : -D 開發(fā)依賴 等價于 --save-dev 根目錄下新建webpack.config.js,webpack的配置文件 在根目錄下 新建tsconfig.json 在package.json 的scripts中添加 都配置好后,執(zhí)行 npm run build 在目錄下看到dist文件,就是成功拉!

    2024年02月12日
    瀏覽(16)
  • 醫(yī)學(xué)圖像的深度學(xué)習(xí)的完整代碼示例:使用Pytorch對MRI腦掃描的圖像進(jìn)行分割

    醫(yī)學(xué)圖像的深度學(xué)習(xí)的完整代碼示例:使用Pytorch對MRI腦掃描的圖像進(jìn)行分割

    圖像分割是醫(yī)學(xué)圖像分析中最重要的任務(wù)之一,在許多臨床應(yīng)用中往往是第一步也是最關(guān)鍵的一步。在腦MRI分析中,圖像分割通常用于測量和可視化解剖結(jié)構(gòu),分析大腦變化,描繪病理區(qū)域以及手術(shù)計(jì)劃和圖像引導(dǎo)干預(yù),分割是大多數(shù)形態(tài)學(xué)分析的先決條件。 本文我們將介紹

    2024年02月05日
    瀏覽(31)
  • SpringBoot集成Elasticsearch8.x(7)|(新版本Java API Client使用完整示例)

    章節(jié) 第一章鏈接: SpringBoot集成Elasticsearch7.x(1)|(增刪改查功能實(shí)現(xiàn)) 第二章鏈接: SpringBoot集成Elasticsearch7.x(2)|(復(fù)雜查詢) 第三章鏈接: SpringBoot集成Elasticsearch7.x(3)|(aggregations之指標(biāo)聚合查詢) 第四章鏈接: SpringBoot集成Elasticsearch7.x(4)|(aggregations之分桶聚合查詢)

    2024年02月16日
    瀏覽(28)
  • 如何使用Webpack工具構(gòu)建項(xiàng)目

    webpack 用于編譯 JavaScript 模塊。一旦完成?安裝,你就可以通過 webpack?CLI?或?API?與其配合交互。如果你還不熟悉 webpack,請閱讀?核心概念?和?對比,了解為什么要使用 webpack,而不是社區(qū)中的其他工具。 運(yùn)行 webpack 5 的 Node.js 最低版本是 10.13.0 (LTS)。 首先我們創(chuàng)建一個目錄

    2023年04月21日
    瀏覽(18)
  • Android RecyclerView之最基本使用教程完整示例(列表/分隔線/點(diǎn)擊事件響應(yīng)/水波紋特效等實(shí)現(xiàn))

    Android RecyclerView之最基本使用教程完整示例(列表/分隔線/點(diǎn)擊事件響應(yīng)/水波紋特效等實(shí)現(xiàn))

    前面幾篇文章我們學(xué)了Listview的一些基本使用和面向?qū)嵱脙?yōu)化性的一些進(jìn)階自定義用法。這篇文章開始學(xué)習(xí)RecyclerView,還是先從一個最簡單的示例開始。 本篇文章我們將用RecyclerView實(shí)現(xiàn)如下效果圖(實(shí)現(xiàn)一個帶分隔線有點(diǎn)擊事件的列表,類似Listview ArrayAdapter的示例) ?Listvi

    2024年02月08日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包