在使用vue-loader 配合webpack 對.vue文件進行加載的時候,如果開啟了代碼壓縮會出來下面
幾種問題,做個記錄。
- 丟失td結束標記,導致頁面的布局錯亂
- input的屬性type為text 時會被刪了
<input ... checked="{check('id')}" />
這個表達式會被壓成<input ... checked />
丟失td結束標記
<table> |
最終壓成:
<table> |
這樣就會造成頁面的布局混亂
解決方法:
//webpack.config.js配置 |
type=”text”會被刪了
壓縮前 |
如果有
.text
這樣的選擇器,就會失效
解決方法:
//和上面類似加上removeRedundantAttributes=false |
checked=”xxxx”被壓縮為checked
壓縮前 |
這會導致所綁定的判斷方法直接被刪除了,所有的checkbox都被選中
解決方法可以有兩個:
1.跟上面一樣:設置參數讓vue-html-loader不要去截斷這個
html: 'vue-html-loader?collapseBooleanAttributes=false' |
但是這個會帶來另外的問題:如果你自自定義控件中也用了checked/multiple 這種默認的屬性,
它會自動給他補全了。如:
壓縮前 |
2.第二種方法可以避免這種情況
不修改vue-html-loader的collapseBooleanAttributes
該用v-bind來綁定控件(自定義控件,原生控件)的屬性 |