解決vue-cli build打包後CSS瀏覽器相容字首自動去除的問題
阿新 • • 發佈:2018-11-09
今天做練手專案部署的時候碰到了個奇怪問題,開發環境裡顯示得好好的CSS prefixer樣式,到production環境就消失了。
我開發環境用的是 scss ,剛開始我還以為是 scss 處理器的問題,後來研究了下 build 指令碼,發現人家把CSS統一用一個外掛給壓縮了,然後追查之下發現這個外掛用了 postCSS 的 autoprefixer 外掛。
這下問題就清楚了,因為 autoprefixer 外掛會針對支援的瀏覽器進行CSS 字首的刪除和追加。
比如:
a { -webkit-border-radius: 5px; border-radius: 5px; }
編譯成:
a {
border-radius: 5px;
}
autoprefixer 使用了 browserslist 作為依賴。在專案目錄中執行:
npx browserslist
可以檢視當前專案支援的瀏覽器列表,這時候只要修改當前專案支援的瀏覽器就可以了。
vue-cli生成的專案預設支援部分移動端瀏覽器和最新版本的PC端瀏覽器。
在 package.json 中修改 browserslist
:
"browserslist": [ "> 1%", "last 2 versions", "last 10 Chrome versions", "last 5 Firefox versions", "Safari >= 6", "ie > 8" ]
之後再執行 npm run build
這時生成的程式碼就有 css prefix 了。