用webpack編譯es6,碰到一個(gè)頭疼的問(wèn)題。如果我用development模式,編譯后的js文件能保留debugger關(guān)鍵字,但是js文件太大了。webpack.config.js配置文件如下:module.exports = {
devtool: "source-map",
mode: 'development', module: {
rules:[
{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }
]
}
}生成的代碼如下:這樣生成的js代碼,保留了debugger關(guān)鍵字,能幫助我快速打斷點(diǎn)(個(gè)人習(xí)慣,喜歡用debugger打斷點(diǎn),也會(huì)去chrome里面手動(dòng)打斷點(diǎn))。但是這樣的js文件太大了,上線時(shí),肯定希望js代碼壓縮優(yōu)化下,畢竟用sourcemap調(diào)試,開(kāi)發(fā)階段生成的js文件是壓縮的也沒(méi)有問(wèn)題。為了將js文件壓縮優(yōu)化,只需要將webpack.config.js的mode調(diào)整為:production就行了,這樣生成js文件是壓縮優(yōu)化過(guò)的,通過(guò)sourcemap可以很方便的調(diào)試,可是這個(gè)時(shí)候debugger關(guān)鍵字沒(méi)有了,刷新頁(yè)面時(shí),沒(méi)有自動(dòng)斷點(diǎn)。要是debugger關(guān)鍵字像console.log一樣被保留就好了,生成js文件是壓縮過(guò)的,console.log和debugger還被保留,方便調(diào)試。本人目前搭建的開(kāi)發(fā)環(huán)境為:webpack通過(guò)babel編譯es6,沒(méi)有牽扯到webpack-dev-server這些服務(wù)器環(huán)境等,所以盡量不要讓我升級(jí)配置文件等。我目前采用的是gulp,gulp搭建的服務(wù)器和webpack-stream(webpack和gulp的整合工具)。請(qǐng)大神支招,我希望webpack編譯es6,代碼優(yōu)化壓縮又能保留debugger關(guān)鍵字。特別聲明:有大神質(zhì)疑要上線的代碼為什么要帶有debugger等調(diào)試信息,我只是開(kāi)發(fā)階段使用,后續(xù)肯定注釋或者刪除。我這邊構(gòu)建環(huán)境,希望開(kāi)發(fā)階段生成的代碼測(cè)試沒(méi)問(wèn)題直接上線的,并不會(huì)有意去區(qū)分開(kāi)發(fā)階段和上線階段,這和一般的webpack構(gòu)建開(kāi)發(fā)流程有一定的區(qū)別。
webpack編譯es6代碼,如何壓縮優(yōu)化代碼,又能保留debugger關(guān)鍵字?
FFIVE
2019-03-01 20:23:54