webpack啟動(dòng)服務(wù)器和處理sourcemap的操作方法
腳手架原理之webpack啟動(dòng)服務(wù)器和處理sourcemap
Source Map 簡(jiǎn)介
Source Map(源代碼地圖)就是解決此類(lèi)問(wèn)題最好的辦法,從它的名字就能夠看出它的作用:映射轉(zhuǎn)換后的代碼與源代碼之間的關(guān)系。一段轉(zhuǎn)換后的代碼,通過(guò)轉(zhuǎn)換過(guò)程中生成的 Source Map 文件就可以逆向解析得到對(duì)應(yīng)的源代碼。
啟動(dòng)服務(wù)環(huán)境
目前我們的webpack是沒(méi)有服務(wù)環(huán)境的,那么如何啟動(dòng)一個(gè)web服務(wù)器呢?可以通過(guò)webpack-dev-server模塊,下載使用即可。
npm install webpack-dev-server
安裝好后,再package.json中配置scripts腳本,"serve": "webpack-dev-server"
,然后運(yùn)行serve腳本。這樣就會(huì)啟動(dòng)一個(gè)http://localhost:8080的服務(wù)。
當(dāng)開(kāi)啟了web服務(wù)后,咱們的/dist文件可以不用存在了,服務(wù)會(huì)把dist的資源打入到內(nèi)存中,這樣可以大大加快編譯的速度,所以/dist文件夾可以刪除掉了,不影響服務(wù)的啟動(dòng)和訪(fǎng)問(wèn)。
處理sourcemap
socurcemap啟動(dòng)映射文件的作用,可以通過(guò)瀏覽器查找到原始的文件,這樣對(duì)于調(diào)試是非常有幫助的,配置如下:
module.exports = { devtool: 'inline-source-map' }
補(bǔ)充:
Webpack5 SourceMap
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、SourceMap有什么用
為什么需要SourceMap
開(kāi)發(fā)時(shí)我們運(yùn)行的代碼是經(jīng)過(guò) Webpack 編譯壓縮合并之后的,這樣的目的是以提高應(yīng)用程序的性能,但是這種優(yōu)化也給調(diào)試問(wèn)題帶來(lái)了困難,因?yàn)閴嚎s后的代碼難以追蹤和調(diào)試。這時(shí)候,SourceMap技術(shù)就能派上用場(chǎng)了。
SourceMap(源代碼映射)是一個(gè)用來(lái)生成源代碼與構(gòu)建后代碼一一映射的文件的方案。
它會(huì)生成一個(gè) xxx.map 文件,里面包含源代碼和構(gòu)建后代碼每一行、每一列的映射關(guān)系。當(dāng)構(gòu)建后代碼出錯(cuò)了,會(huì)通過(guò) xxx.map 文件,從構(gòu)建后代碼出錯(cuò)位置找到映射后源代碼出錯(cuò)位置,從而讓瀏覽器提示源代碼文件出錯(cuò)位置,幫助我們更快的找到錯(cuò)誤根源。
可以提升開(kāi)發(fā)體驗(yàn) 我們需要更加準(zhǔn)確的錯(cuò)誤提示,來(lái)幫助我們更好的開(kāi)發(fā)代碼
二、怎么使用SourceMap
通過(guò)查看Webpack DevTool 文檔可知,SourceMap 的值有很多種情況,但Webpack5甚至更早的版本已經(jīng)為我們內(nèi)置了SourceMap,所以實(shí)際開(kāi)發(fā)時(shí)我們只需要關(guān)注兩種情況即可:
- 在開(kāi)發(fā)模式下使用:
cheap-module-source-map
- 優(yōu)點(diǎn):打包編譯速度快,只包含行映射
- 缺點(diǎn):沒(méi)有列映射
module.exports = { // 其他省略 mode: "development", devtool: "cheap-module-source-map", };
在生產(chǎn)模式下使用:source-map
- 優(yōu)點(diǎn):包含行/列映射
- 缺點(diǎn):打包編譯速度更慢
module.exports = { // 其他省略 mode: "production", devtool: "source-map", };
三、需要注意的點(diǎn)
生產(chǎn)環(huán)境我們一般不會(huì)開(kāi)啟sourceMap功能,主要原因如下:
1,通過(guò)bundle和sourcemap文件,可以反編譯出源碼,也就是說(shuō),線(xiàn)上產(chǎn)物有sourcemap文件的話(huà),就意味著有暴露源碼的風(fēng)險(xiǎn)。
2,我們可以觀察到,sourcemap文件的體積相對(duì)比較巨大,這和我們生產(chǎn)環(huán)境的追求不同(生產(chǎn)環(huán)境追求更小更輕的bundle.)
所以有如下總結(jié):Webpack 5中,是否需要開(kāi)啟source-map
取決于你的具體需求和項(xiàng)目情況。以下是一些考慮因素:
- 調(diào)試能力:如果你需要在生產(chǎn)環(huán)境中進(jìn)行調(diào)試,查找問(wèn)題或者進(jìn)行性能優(yōu)化,開(kāi)啟
source-map
可以提供更好的源代碼映射,方便你定位和排查問(wèn)題。 - 構(gòu)建速度和輸出文件大?。荷?code>source-map會(huì)增加構(gòu)建時(shí)間和打包后的文件大小。在生產(chǎn)模式下,你可能更關(guān)注性能和用戶(hù)體驗(yàn),因此可以選擇關(guān)閉
source-map
以減小輸出文件大小并提高構(gòu)建速度。 - 安全性考慮:在某些情況下,你可能不希望將源代碼暴露給終端用戶(hù)。生成
source-map
可能會(huì)泄露你的源代碼邏輯,因此需要權(quán)衡安全性和調(diào)試需求。
總結(jié)來(lái)說(shuō),開(kāi)啟source-map
在生產(chǎn)模式下不是必須的,但根據(jù)具體需求和項(xiàng)目特點(diǎn),你可以根據(jù)以上因素進(jìn)行判斷和決策。
到此這篇關(guān)于webpack啟動(dòng)服務(wù)器和處理sourcemap的操作方法的文章就介紹到這了,更多相關(guān)webpack啟動(dòng)服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Rsync實(shí)現(xiàn)文件定時(shí)同步技巧
這篇文章主要介紹了Rsync實(shí)現(xiàn)文件定時(shí)同步技巧的相關(guān)資料,需要的朋友可以參考下2015-09-09Visual Studio Code(vscode) git的使用教程
這篇文章主要介紹了詳解Visual Studio Code(vscode) git的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11linux配置DNS主從服務(wù)器的實(shí)驗(yàn)步驟
這篇文章主要介紹了linux配置DNS主從服務(wù)器的實(shí)驗(yàn)步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01Ansible?Galaxy命令的使用實(shí)踐示例詳解
這篇文章主要為大家介紹了Ansible?Galaxy命令的使用實(shí)踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Linux阿里云服務(wù)器中安裝Nginx命令的詳細(xì)過(guò)程
這篇文章主要介紹了Linux(阿里云服務(wù)器)中安裝Nginx命令,主要包括安裝nginx依賴(lài)和配置環(huán)境變量的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06完美解決IIS和APACHE的301重定向(帶參數(shù))
感覺(jué)BAIDU spider對(duì)404的重定向似乎無(wú)動(dòng)于衷,于是近日干脆對(duì)原失效的鏈接重新設(shè)置301重定向。2010-11-11解決Navicat?連接服務(wù)器不成功的問(wèn)題(Access?denied?for?user?'root
這篇文章主要介紹了Navicat?連接服務(wù)器不成功(Access?denied?for?user?'root'@?'*.*.*.*'?(using?password:?YES)),出現(xiàn)這種原因一般是服務(wù)器的root用戶(hù)沒(méi)有開(kāi)啟訪(fǎng)問(wèn)權(quán)限,本文給大家分享解決方法,需要的朋友可以參考下2022-09-090到1分析美團(tuán)端側(cè)cdn容災(zāi)解決方案
作為業(yè)務(wù)研發(fā),你是否遇到過(guò)因?yàn)?CDN?問(wèn)題導(dǎo)致的業(yè)務(wù)圖片加載失敗,頁(yè)面打開(kāi)緩慢,頁(yè)面布局錯(cuò)亂或者頁(yè)面白屏?你是否又遇到過(guò)某些區(qū)域?CDN?域名異常導(dǎo)致業(yè)務(wù)停擺,客訴不斷,此時(shí)的你一臉茫然,不知所措,這篇文章為大家從0到1分析美團(tuán)端側(cè)cdn容災(zāi)解決方案2022-01-01