質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SCSS

SCSSは、SassのCSSメタ言語です。Webページのスタイルを指定するCSSを効率的に記述することができます。ネストと呼ばれる入れ子構造で記述するため、CSSの全体の記述量を減らせる点が特徴です。さらに変数も利用できるため、変更や修正の際に少ない作業量で対応することもできます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

2253閲覧

vscodeで.scss保存時に.scss自体にautoprefixerが走ってしまうのを止めたい

recal

総合スコア1128

SCSS

SCSSは、SassのCSSメタ言語です。Webページのスタイルを指定するCSSを効率的に記述することができます。ネストと呼ばれる入れ子構造で記述するため、CSSの全体の記述量を減らせる点が特徴です。さらに変数も利用できるため、変更や修正の際に少ない作業量で対応することもできます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/12/11 19:40

編集2021/12/11 19:41

vscodeの拡張から
live sass compilerの更新されている方のv5.1.1と
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"],が無視されるのでしょうか?

###autoprefixerの設定画面
autoprefixerの設定画面

ちなみに、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を適用させずに保存する方法は無いものでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Sassのプラグインだと「Live Sass Compiler」が一番有名かと思いますが、こちらは公式推奨のDarts Sassにまだ対応してない、って知ってましたか?

この点を知らないと、今後Sassの機能を上手く使えなくなってしまいます。

https://crestadesign.org/sass-vscode/

どうもlive sass compilerは辞めたほうが良さそうな感じなんですね
とはいえ、上記サイトで紹介されている
DartJS Sass Compiler and Sass Watcherにもoption設定はなさそうでした。

投稿2021/12/11 20:17

recal

総合スコア1128

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問