日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

source-map

發布時間:2023/12/18 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 source-map 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

eval - 每個模塊都使用 eval() 執行,并且都有 //@ sourceURL。此選項會非常快地構建。主要缺點是,由于會映射到轉換后的代碼,而不是映射到原始代碼(沒有從 loader 中獲取 source map),所以不能正確的顯示行數。

/** ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").* This devtool is neither made for production nor for readable output files.* It uses "eval()" calls to create a separate source file in the browser devtools.* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)* or disable the default devtool with "devtool: false".* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).*/ /******/ (() => { // webpackBootstrap /*!**********************!*\!*** ./src/index.js ***!\**********************/ eval("console.log('hello world')\n\n//# sourceURL=webpack://webpack5/./src/index.js?"); /******/ })() ;

只是給了個代碼路徑,并不能映射行和列,不會產生新文件。

eval-source-map - 每個模塊使用 eval() 執行,并且 source map 轉換為 DataUrl 后添加到 eval() 中。初始化 source map 時比較慢,但是會在重新構建時提供比較快的速度,并且生成實際的文件。行數能夠正確映射,因為會映射到原始代碼中。它會生成用于開發環境的最佳品質的 source map。

/** ATTENTION: An "eval-source-map" devtool has been used.* This devtool is neither made for production nor for readable output files.* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)* or disable the default devtool with "devtool: false".* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).*/ /******/ (() => { // webpackBootstrap /*!**********************!*\!*** ./src/index.js ***!\**********************/ eval("console.log('hello world')//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93ZWJwYWNrNS8uL3NyYy9pbmRleC5qcz9iNjM1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ii4vc3JjL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc29sZS5sb2coJ2hlbGxvIHdvcmxkJykiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/index.js\n"); /******/ })() ;

可以映射行和列,不會產生新文件。

eval-cheap-source-map - 類似 eval-source-map,每個模塊使用 eval() 執行。這是 “cheap(低開銷)” 的 source map,因為它沒有生成列映射(column mapping),只是映射行數。它會忽略源自 loader 的 source map,并且僅顯示轉譯后的代碼,就像 eval devtool。

可以映射行,沒有列,如果中間經歷了loader處理,只能映射到轉換后的代碼。不會產生新文件。

eval-cheap-module-source-map - 類似 eval-cheap-source-map,并且,在這種情況下,源自 loader 的 source map 會得到更好的處理結果。然而,loader source map 會被簡化為每行一個映射(mapping)。

可以映射行,沒有列,如果中間經歷了loader處理,能映射到轉換前的代碼,也就是源碼列。不會產生新文件。

source-mapcheap-source-map
生成實際的文件不生成實際的文件
行數能夠正確映射生成列映射,只是映射行數
會映射到原始代碼中僅顯示轉譯后的代碼

eval-cheap-module-source-map 比 eval-cheap-source-map 更好

說明:僅顯示轉譯后的代碼,表示ES6轉換ES5的代碼中,只能映射到ES5,不能映射到ES6,但是中間經歷了loader的處理,如果要正確映射到ES6,我們可以使用eval-cheap-module-source-map。

特定場景

以下選項對于開發環境和生產環境并不理想。他們是一些特定場景下需要的,例如,針對一些第三方工具。

inline-source-map - source map 轉換為 DataUrl 后添加到 bundle 中。

cheap-source-map - 沒有列映射(column mapping)的 source map,忽略 loader source map。

inline-cheap-source-map - 類似 cheap-source-map,但是 source map 轉換為 DataUrl 后添加到 bundle 中。

cheap-module-source-map - 沒有列映射(column mapping)的 source map,將 loader source map 簡化為每行一個映射(mapping)。

inline-cheap-module-source-map - 類似 cheap-module-source-map,但是 source mapp 轉換為 DataUrl 添加到 bundle 中。

inline的意思就是說,我們source-map會生成單獨的文件,但是為了不生成單獨文件,通過將生成的內容base64轉換了,把內容內嵌到bundle中了,不會產生單獨的文件。

重點關注

1、添加到 eval() 中
2、添加到 bundle 中

eval性能較好,因為可以根據文件進行緩存。所以最后推薦大家在開發環境中使用的配置是:eval-source-map,不要在生產環境使用!!!如何需要更快速度并且只需要行信息不要列信息,你甚至可以使用eval-cheap-module-source-map

總結

以上是生活随笔為你收集整理的source-map的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。