問題描述
近期大诸,抽離一個業(yè)務性的組件庫崇决,需要從0到1實現(xiàn)打包過程。在實現(xiàn)過程中底挫,配置treser-webpack-plugin
的drop_console:true
,打包之后恒傻,控制臺任然有打印內容,然后查看打包之后的js文件建邓,發(fā)現(xiàn)還存console盈厘。
解決問題
檢查是因為webpack-config.js
的devtool
未設置,我的打包命令的mode=development
, 此時sourceMap
默認值為eval
, 打包之后的js是包含了源碼字符串官边。terser-webpack-plugin不會處理源碼字符串中的console沸手、備注、空格等注簿。
所以需要將devtool
設置terse-webpack-plugin
支持的選項:source-map,inline-source-map.
..
terser-webpack-plugin
關于 source maps 說明
只對
devtool
選項的source-map
契吉,inline-source-map
,hidden-source-map
和nosources-source-map
有效诡渴。
為何如此捐晶?
eval
會包裹 modules,通過eval("string")
妄辩,而 minimizer 不會處理字符串惑灵。cheap
不存在列信息,minimizer 只產(chǎn)生單行眼耀,只會留下一個映射英支。
使用支持的devtool
值可以生成 source map。
關于devtool
mode=development: devtool的默認值為eval
mode=production:devtool的默認值為false