terser-webpack-plugin drop_console未生效?

問題描述

近期,抽離一個業(yè)務(wù)性的組件庫,需要從0到1實現(xiàn)打包過程。在實現(xiàn)過程中,配置treser-webpack-plugindrop_console:true,打包之后,控制臺任然有打印內(nèi)容,然后查看打包之后的js文件,發(fā)現(xiàn)還存console。

解決問題

檢查是因為webpack-config.jsdevtool未設(shè)置,我的打包命令的mode=development, 此時sourceMap默認(rèn)值為eval, 打包之后的js是包含了源碼字符串。terser-webpack-plugin不會處理源碼字符串中的console、備注、空格等。

所以需要將devtool設(shè)置terse-webpack-plugin支持的選項:source-map,inline-source-map...

terser-webpack-plugin

關(guān)于 source maps 說明

只對 devtool 選項的 source-map,inline-source-map,hidden-source-mapnosources-source-map 有效。
為何如此?

  • eval 會包裹 modules,通過 eval("string"),而 minimizer 不會處理字符串。
  • cheap 不存在列信息,minimizer 只產(chǎn)生單行,只會留下一個映射。
    使用支持的 devtool 值可以生成 source map。

關(guān)于devtool

mode=development: devtool的默認(rèn)值為eval

mode=production:devtool的默認(rèn)值為false

參考文章

關(guān)于 webpack 打包后文件過大的那些事……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容