vscodeの拡張から
live sass compilerの更新されている方のv5.1.1と
Autoprefixerのv3.0.1をインストールしました。
###setting.jsonは次のように書きました。
json
1 "liveSassCompile.settings.formats": [ 2 { 3 "format": "expanded", 4 "extensionName": ".css", 5 "savePath": "~/css" 6 } 7 ], 8 9 "autoprefixer.ignoreFiles": ["scss"], 10 "autoprefixer.options": { 11 "grid": "autoplace", 12 "browsers": ["last 2 versions", "ie >= 11", "Android >= 4", "ios_saf >= 8"] 13 }, 14 "autoprefixer.formatOnSave": true
- 保存時にautoprefixerのformatが有効
- ignorefilesでscssが変換されるのを除外
autoprefixerの設定がうまく言っているか確認する為に
"grid":"autoplace"
をつけて下記を変換しました
###保存前のscss
scss
1.grid { 2 display: grid; 3 grid-template-columns: 1fr 1fr 1fr; 4 grid-template-rows: auto auto auto; 5 grid-gap: 1em; 6} 7
###これで保存すると、scssが次のように書き換えられてしまいました。
scss
1.grid { 2 display: -ms-grid; 3 display: grid; 4 -ms-grid-columns: 1fr 1em 1fr 1em 1fr; 5 grid-template-columns: 1fr 1fr 1fr; 6 -ms-grid-rows: auto 1em auto 1em auto; 7 grid-template-rows: auto auto auto; 8 grid-gap: 1em; 9} 10.grid > *:nth-child(1) { 11 -ms-grid-row: 1; 12 -ms-grid-column: 1; 13} 14.grid > *:nth-child(2) { 15 -ms-grid-row: 1; 16 -ms-grid-column: 3; 17} 18.grid > *:nth-child(3) { 19 -ms-grid-row: 1; 20 -ms-grid-column: 5; 21} 22.grid > *:nth-child(4) { 23 -ms-grid-row: 3; 24 -ms-grid-column: 1; 25} 26.grid > *:nth-child(5) { 27 -ms-grid-row: 3; 28 -ms-grid-column: 3; 29} 30.grid > *:nth-child(6) { 31 -ms-grid-row: 3; 32 -ms-grid-column: 5; 33} 34.grid > *:nth-child(7) { 35 -ms-grid-row: 5; 36 -ms-grid-column: 1; 37} 38.grid > *:nth-child(8) { 39 -ms-grid-row: 5; 40 -ms-grid-column: 3; 41} 42.grid > *:nth-child(9) { 43 -ms-grid-row: 5; 44 -ms-grid-column: 5; 45}
###こちらは出力されたcss
css
1.grid { 2 display: -ms-grid; 3 display: grid; 4 -ms-grid-columns: 1fr 1em 1fr 1em 1fr; 5 grid-template-columns: 1fr 1fr 1fr; 6 -ms-grid-rows: auto 1em auto 1em auto; 7 grid-template-rows: auto auto auto; 8 grid-gap: 1em; 9} 10 11.grid > *:nth-child(1) { 12 -ms-grid-row: 1; 13 -ms-grid-column: 1; 14} 15 16.grid > *:nth-child(2) { 17 -ms-grid-row: 1; 18 -ms-grid-column: 3; 19} 20 21.grid > *:nth-child(3) { 22 -ms-grid-row: 1; 23 -ms-grid-column: 5; 24} 25 26.grid > *:nth-child(4) { 27 -ms-grid-row: 3; 28 -ms-grid-column: 1; 29} 30 31.grid > *:nth-child(5) { 32 -ms-grid-row: 3; 33 -ms-grid-column: 3; 34} 35 36.grid > *:nth-child(6) { 37 -ms-grid-row: 3; 38 -ms-grid-column: 5; 39} 40 41.grid > *:nth-child(7) { 42 -ms-grid-row: 5; 43 -ms-grid-column: 1; 44} 45 46.grid > *:nth-child(8) { 47 -ms-grid-row: 5; 48 -ms-grid-column: 3; 49} 50 51.grid > *:nth-child(9) { 52 -ms-grid-row: 5; 53 -ms-grid-column: 5; 54}
-ms-grid-rows
関係が出力されてるので、
"grid":"autoplace"
のオプションはうまく機能しているようです。
つまりautoprefixerの設定は間違っていないかなと思っているんですが
そうするとなぜ"autoprefixer.ignoreFiles": ["scss"],
が無視されるのでしょうか?
ちなみに、format on saveを外すと
scss保存時にautoprefixerが走らず、scssはそのまま保存され
live sass compilerで出力されたcssには"autoprefixer.options":
の設定が適用されませんが
autoprefixerは有効なようで
下記のような変換はされました
scss
1body { 2 strong { 3 font-weight: 800; 4 animation-duration: 0.7s; 5 } 6}
css
1body strong { 2 font-weight: 800; 3 -webkit-animation-duration: 0.7s; 4 animation-duration: 0.7s; 5}
どうにかscss本体にautoprefixerを適用させずに保存する方法は無いものでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。