Vite + SvelteでSCSS + Autoprefixer
Svelteをインストールする際は以下のコマンドを使用します。
npm create vite@latest my-svelte -- --template svelte cd my-svelte npm install
Sass(SCSS)を使用したい場合は、styleに「lang="scss"」を付けるだけで使用可能です。
<h1>Hello world!</h1>
<style lang="scss">
$color: green;
h1 {
color: $color;
transform: scale(0.9);
}
</style>
これはvitePreprocessにより、PostCSSやSCSSなどがデフォルトで使用できるようになっているためです。
次項でAutoprefixerについて解説しますので、結果を確認しやすいよう、main.jsの「import './app.css'」はコメントアウトして読み込まないようにしてください。
// import './app.css'
import App from './App.svelte'
const app = new App({
target: document.getElementById('app'),
})
export default app
Autoprefixerの使用方法
AutoprefixerはVite + Svelteの環境には含まれていないため、自身で色々と用意が必要です。
まず、以下のコマンドでAutoprefixerをインストールします。
npm i -D autoprefixer
次にルートディレクトリに .browserslistrc ファイルを作成して、対象ブラウザを指定します。
今回の例ではtransformプロパティに -webkit- のベンダープレフィックスが付くように以下のように設定します。
last 2 versions iOS >= 7 not dead
最後に postcss.config.cjs を作成して、以下のコードを書いて保存してください。
module.exports = {
plugins: {
autoprefixer: {},
},
}
※ postcss.config.js ではなく postcss.config.cjs です。
以上の手順が完了した状態で「npm run build」を実行すれば、Autoprefixerが機能してCSSにベンダープレフィックスが自動追加されます。
h1.svelte-7bwm4n{color:green;-webkit-transform:scale(.9);transform:scale(.9)}