<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      什么是源代碼映射?

      源映射的必要性

      早期的 Web 應用的復雜性較低。開發者直接將 HTML、CSS 和 JavaScript 文件部署到 Web 上。

       

      在開發工作流中,更現代、更復雜的 Web 應用可能需要使用各種工具。例如:

      1.模板語言和 HTML 預處理器:Pug、Nunjucks、Markdown。2.CSS 預處理器:SCSS、LESS、PostCSS。3.JavaScript 框架:Angular、React、Vue、Svelte。4.JavaScript 元框架:Next.js、Nuxt、Astro。5.高級編程語言:TypeScript、Dart、CoffeeScript。

      圖片

       

      這些工具需要構建流程來將您的代碼轉譯為瀏覽器可以理解的標準 HTML、JavaScript 和 CSS。常見做法還包括使用 Terser[1] 等工具縮減和合并這些文件,以優化性能。

       

      例如,使用構建工具,我們可以將以下 TypeScript 文件轉譯并壓縮為一行 JavaScript。

      •  
      •  
      •  
      •  
      •  
      •  
      •  
      •  
      /* A TypeScript demo: example.ts */
      document.querySelector('button')?.addEventListener('click', () => {  const num: number = Math.floor(Math.random() * 101);  const greet: string = 'Hello';  (document.querySelector('p') as HTMLParagraphElement).innerText = `${greet}, you are no. ${num}!`;  console.log(num);});

       

      壓縮后的版本將如下所示:

      •  
      •  
      •  
      /* A compressed JavaScript version of the TypeScript demo: example.min.js  */
      document.querySelector("button")?.addEventListener("click",(()=>{const e=Math.floor(101*Math.random());document.querySelector("p").innerText=`Hello, you are no. ${e}!`,console.log(e)}));

       

      不過,壓縮代碼可能會使調試變得更加困難。源映射可以解決此問題:通過將編譯后的代碼映射回原始代碼,源映射可以幫助您快速找到錯誤的來源。

      生成源映射

      源映射是名稱以 .map 結尾的文件(例如 example.min.js.map 和 styles.css.map)。大多數構建工具(包括 Vite、webpack、Rollup、Parcel 和 esbuild)都可以生成源映射。

       

      某些工具默認包含源代碼映射。其他工具可能需要進行額外的配置才能生成:

      •  
      •  
      •  
      •  
      •  
      •  
      •  
      •  
      •  
      •  
      •  
      /* Example configuration: vite.config.js *//* https://vitejs.dev/config/ */
      export default defineConfig({  build: {    sourcemap: true, // enable production source maps  },  css: {    devSourcemap: true // enable CSS source maps during development  }})

      了解源映射

      為了幫助調試,這些源映射文件包含有關編譯代碼如何映射到原始代碼的重要信息。以下是源映射示例:

      •  
      •  
      •  
      •  
      •  
      •  
      •  
      •  
      {  "mappings": "AAAAA,SAASC,cAAc,WAAWC, ...",  "sources": ["src/script.ts"],  "sourcesContent": ["document.querySelector('button')..."],  "names": ["document","querySelector", ...],  "version": 3,  "file": "example.min.js.map"}

      如需了解其中每個字段,您可以參閱源代碼映射規范[2]

       

      源映射最重要的部分是 mappings 字段。它使用 VLQ base 64 編碼字符串[3]將編譯文件中的行和位置映射到相應的原始文件。您可以使用源代碼映射可視化工具(例如 source-map-visualization[4] 或 Source Map Visualization)查看此映射。

      圖片

      左側的生成列顯示壓縮內容,原始列顯示原始來源。

       

      可視化工具會為 original 列中的每行分配顏色代碼,并在 generated 列中顯示相應的代碼。

       

      映射部分會顯示代碼的已解碼映射。例如,條目 65 -> 2:2 表示:

      1.生成的代碼:const 一詞位于壓縮內容的 65 位。2.原始代碼:const 一詞位于原始內容的第 2 行和第 2 列。

      圖片

      這樣,開發者就可以快速確定經過縮減的代碼與原始代碼之間的關系,從而使調試過程更加順暢。

       

      瀏覽器開發者工具會應用這些源代碼映射,以幫助您在瀏覽器中快速查明調試問題。

      圖片

      References

      [1] Terser: https://github.com/terser/terser
      [2] 源代碼映射規范: https://bit.ly/sourcemap
      [3] VLQ base 64 編碼字符串: https://developer.chrome.com/blog/sourcemaps?hl=zh-cn#base64-vlq-and-keeping-the-source-map-small
      [4] source-map-visualization: https://sokra.github.io/source-map-visualization/

       

      什么是源代碼映射?

      posted @ 2025-09-08 11:37  CharyGao  閱讀(7)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产成人综合色视频精品| 精品偷拍被偷拍在线观看| 99久久婷婷国产综合精品青草漫画 | 国产精品免费中文字幕| 成人自拍小视频在线观看| 蜜桃视频一区二区三区四| 亚洲老妇女一区二区三区| 亚洲午夜成人精品电影在线观看 | 国产av无码国产av毛片| 欧美成年性h版影视中文字幕 | 制服jk白丝h无内视频网站| 一区二区亚洲人妻精品| 亚洲第一香蕉视频啪啪爽| 人妻精品动漫H无码中字| 亚洲熟妇国产熟妇肥婆| 色综合久久综合香蕉色老大| 久久亚洲色WWW成人男男| 福利一区二区不卡国产| 成人午夜福利视频一区二区| 久久人妻公开中文字幕| 91国产自拍一区二区三区| 亚洲第一精品一二三区| 麻豆国产va免费精品高清在线| 久久国产成人精品国产成人亚洲| 国产影片AV级毛片特别刺激| 最新国产精品亚洲| 内射老阿姨1区2区3区4区| AV最新高清无码专区| 国产成人片无码视频| 国产色无码精品视频免费| 亚洲性日韩一区二区三区| 色综合视频一区二区三区| 国产稚嫩高中生呻吟激情在线视频| 青草青草视频2免费观看| 国产精品一二三区蜜臀av| 国产欧美日韩亚洲一区二区三区| 亚洲中文字幕日产无码成人片| 国内熟女中文字幕第一页| 天堂va亚洲va欧美va国产| 亚洲偷自拍国综合| 午夜高清国产拍精品福利|