成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

source-map整理

CoreDump / 2466人閱讀

摘要:這個(gè)就是把的換成了完整信息的形式特點(diǎn)結(jié)合了和的特點(diǎn),將每個(gè)模塊包起來(lái),并且最后添加的信息,可以知道行列,可以為模塊緩存它可以更快的重建。最終的只有一份,它是對(duì)生成的進(jìn)行簡(jiǎn)化,然后再次生成的。

eval

每個(gè) module 會(huì)通過(guò) eval() 來(lái)執(zhí)行,并在后面添加?//# sourceURL

形式:
webpackJsonp([1],[
  function(module,exports,__webpack_require__){
    eval(
      ...
      //# sourceURL=webpack:///./src/js/index.js?"
    )
  },
  function(module,exports,__webpack_require__){
    eval(
      ...
      //# sourceURL=webpack:///./src/static/css/app.less?./~/.npminstall/css-loader/0.23.1/css-loader!./~/.npminstall/postcss-loader/1.1.1/postcss-loader!./~/.npminstall/less-loader/2.2.3/less-loader"
    )
  },
  function(module,exports,__webpack_require__){
    eval(
      ...
      //# sourceURL=webpack:///./src/tmpl/appTemplate.tpl?"
    )
  },
...])
特點(diǎn):

eval有最好的性能,但是它只映射到每個(gè)模塊源碼文件,沒(méi)有行列信息。

source-map

打包代碼同時(shí)創(chuàng)建一個(gè)新的 sourcemap 文件, 并在打包文件的末尾添加?//# sourceURL?注釋行告訴 JS 引擎文件在哪兒

形式:
webpackJsonp([1],[
  function(e,t,i){...},
  function(e,t,i){...},
  function(e,t,i){...},
  function(e,t,i){...},
  ...
])
//# sourceMappingURL=index.js.map
特點(diǎn):

source-map?不能為模塊和需要重新生成的代碼塊緩存SourceMaps,它適用于生產(chǎn)環(huán)境。

inline-source-map

為每一個(gè)文件添加 sourcemap 的 DataUrl,注意這里的文件是打包前的每一個(gè)文件而不是最后打包出來(lái)的,同時(shí)這個(gè) DataUrl 是包含一個(gè)文件完整 souremap 信息的 Base64 格式化后的字符串,而不是一個(gè) url

形式:
webpackJsonp([1],[
  function(e,t,i){...},
  function(e,t,i){...},
  function(e,t,i){...},
  function(e,t,i){...},
  ...
])
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9...
特點(diǎn):

可以看到末尾的注釋 sourceMap 作為 DataURL 的形式被內(nèi)嵌進(jìn)了 bundle 中,由于 sourceMap 的所有信息都被加到了 bundle 中,整個(gè) bundle 文件變得碩大無(wú)比。

eval-source-map

這個(gè)就是把?eval?的 sourceURL 換成了完整 souremap 信息的 DataUrl

形式:
webpackJsonp([1],[
  function(module,exports,__webpack_require__){
    eval(
      ...
      //# sourceMappingURL=data:application/json;charset=utf-8;base64,...
    )
  },
  function(module,exports,__webpack_require__){
    eval(
      ...
      //# sourceMappingURL=data:application/json;charset=utf-8;base64,...
    )
  },  
  function(module,exports,__webpack_require__){
    eval(
      ...
      //# sourceMappingURL=data:application/json;charset=utf-8;base64,...
    )
  },
  ...
]);
特點(diǎn):

結(jié)合了eval和source-map的特點(diǎn),eval將每個(gè)模塊包起來(lái),并且最后添加source-map的base64信息,可以知道行列,可以為模塊緩存它可以更快的重建SourceMaps。

cheap-source-map

不包含列信息,不包含 loader 的 sourcemap,(譬如 babel 的 sourcemap)

特點(diǎn):

不包含行信息,會(huì)減小map大小,不支持loader的sourcemap,比如從jsx映射到j(luò)s,最終你只能訪(fǎng)問(wèn)到j(luò)s文件,看不了源碼的jsx文件。

cheap-module-source-map

不包含列信息,同時(shí) loader 的 sourcemap 也被簡(jiǎn)化為只包含對(duì)應(yīng)行的。最終的 sourcemap 只有一份,它是 webpack 對(duì) loader 生成的 sourcemap 進(jìn)行簡(jiǎn)化,然后再次生成的。

特點(diǎn):

相較于cheap-source-map,可以支持loader的sourcemap

hidden-source-map

和 source-map 一樣,但不會(huì)在 bundle 末尾追加注釋.

形式:
webpackJsonp([1],[
  function(e,t,i){...},
  function(e,t,i){...},
  function(e,t,i){...},
  function(e,t,i){...},
  ...
])
特點(diǎn):

與 source-map 相比少了末尾的注釋?zhuān)?output 目錄下的?index.js.map?沒(méi)有少

注1:webpack 不僅支持這 7 種,而且它們還是可以任意組合上面的 eval、inline、hidden 關(guān)鍵字,就如文檔所說(shuō),你可以設(shè)置 souremap 選項(xiàng)為 cheap-module-inline-source-map。

注2:如果你的 modules 里面已經(jīng)包含了 SourceMaps ,你需要用?source-map-loader來(lái)和合并生成一個(gè)新的 SourceMaps?

調(diào)試

github上關(guān)于調(diào)試的問(wèn)題:Source Maps don"t work on Chrome

個(gè)人實(shí)測(cè):

chrome里能否調(diào)試源碼 x:不行 o:可以

eval-source-map x(刷新斷點(diǎn)被忽略)

cheap-source-map x(不是源碼)

cheap-module-eval-source-map x(刷新斷點(diǎn)被忽略)

cheap-module-source-map x(斷點(diǎn)位置不對(duì))

source-map o

inline-source-map o

總結(jié)

eval: 更快

inline:內(nèi)聯(lián)

cheap:不含列信息,不支持loader sourcemap(譬如 babel 的 sourcemap,從jsx到j(luò)s的映射)

cheap-module:不含列信息,支持loader sourcemap

source-map:包含行列信息,支持loader sourcemap

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82975.html

相關(guān)文章

  • React結(jié)合webpack的具體使用

    摘要:結(jié)合的具體使用我們一般是使用進(jìn)行安裝的,這里我為大家推薦一款淘寶出的,這個(gè)和差不多,但是比安裝的要快很多安裝命令搭建環(huán)境初始化一個(gè)文件安裝全局安裝局部安裝安裝來(lái)把格式的代碼編譯成安裝來(lái)轉(zhuǎn)譯代碼安裝轉(zhuǎn)移的插件, React結(jié)合webpack的具體使用 我們一般是使用npm進(jìn)行安裝的,這里我為大家推薦一款淘寶出的cnpm,這個(gè)和npm差不多,但是比npm安裝的要快很多; 安裝命令 npm ...

    enrecul101 評(píng)論0 收藏0
  • React結(jié)合webpack的具體使用

    摘要:結(jié)合的具體使用我們一般是使用進(jìn)行安裝的,這里我為大家推薦一款淘寶出的,這個(gè)和差不多,但是比安裝的要快很多安裝命令搭建環(huán)境初始化一個(gè)文件安裝全局安裝局部安裝安裝來(lái)把格式的代碼編譯成安裝來(lái)轉(zhuǎn)譯代碼安裝轉(zhuǎn)移的插件, React結(jié)合webpack的具體使用 我們一般是使用npm進(jìn)行安裝的,這里我為大家推薦一款淘寶出的cnpm,這個(gè)和npm差不多,但是比npm安裝的要快很多; 安裝命令 npm ...

    LeexMuller 評(píng)論0 收藏0
  • React結(jié)合webpack的具體使用

    摘要:結(jié)合的具體使用我們一般是使用進(jìn)行安裝的,這里我為大家推薦一款淘寶出的,這個(gè)和差不多,但是比安裝的要快很多安裝命令搭建環(huán)境初始化一個(gè)文件安裝全局安裝局部安裝安裝來(lái)把格式的代碼編譯成安裝來(lái)轉(zhuǎn)譯代碼安裝轉(zhuǎn)移的插件, React結(jié)合webpack的具體使用 我們一般是使用npm進(jìn)行安裝的,這里我為大家推薦一款淘寶出的cnpm,這個(gè)和npm差不多,但是比npm安裝的要快很多; 安裝命令 npm ...

    Leck1e 評(píng)論0 收藏0
  • vue + webpack +chrome 調(diào)試

    摘要:最近整理一下針對(duì)的調(diào)試方法。一是的調(diào)試的插件,可以直接顯示組件現(xiàn)在的狀態(tài)。最終的只有一份,它是對(duì)生成的進(jìn)行簡(jiǎn)化,然后再次生成的。關(guān)于的標(biāo)記是不起作用的需要手動(dòng)加入命令 問(wèn)題描述 vue 經(jīng)過(guò)webpack的打包壓縮之后,通過(guò)source看到的代碼已經(jīng)面目全非,無(wú)法輕易對(duì)代碼進(jìn)行調(diào)試。最近整理一下針對(duì)vue的調(diào)試方法。 一、 devtools devtools是Chrome的調(diào)試vue的...

    BWrong 評(píng)論0 收藏0
  • 細(xì)說(shuō) js 壓縮、sourcemap、通過(guò) sourcemap 查找原始報(bào)錯(cuò)信息

    摘要:文件就是記錄了從源代碼文件到壓縮文件的一個(gè)代碼對(duì)應(yīng)關(guān)系記錄表,通過(guò)壓縮文件和文件可以原原本本找出源代碼文件。 細(xì)說(shuō) js 壓縮、sourcemap、通過(guò) sourcemap 查找原始報(bào)錯(cuò)信息 1. js 壓縮 js 壓縮對(duì)前端開(kāi)發(fā)者來(lái)說(shuō)是一門(mén)必修課。 一般來(lái)說(shuō),壓縮 js 主要出于以下兩個(gè)目的: 減小代碼體積,加快前端資源加載速度 保護(hù)源代碼不被別人獲取 壓縮 js 使用的工具庫(kù):...

    douzifly 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<