NuxtでSCSSのコンパイルが倍以上速くなる設定
Nuxt(Vue)プロジェクトで大量のSCSSを使っている場合、開発サーバーの起動やビルド時間が遅くなってしまうことがあります。
あまり知られていませんが、Nuxtではnuxt.config.tsでpreprocessorMaxWorkersを有効化するだけで、SCSSのコンパイル時間を大幅に短縮できます。
nuxt.config.tsの設定方法
nuxt.config.tsのviteセクションに以下の記述を追加するだけで有効化できます。
nuxt.config.ts
export default defineNuxtConfig({
vite: {
css: {
preprocessorMaxWorkers: true, // CPUコア数 - 1 で並列処理を実行
},
},
})設定でコンパイル速度が変わる理由
NuxtではデフォルトだとSCSSをコンパイルする際、処理はシングルスレッド(1つのCPUコア)で実行されています。
そのため、大規模なプロジェクトで共通の変数・mixins(@use や @import)を無数のコンポーネントで参照している場合、どれだけスペックの高いマルチコアCPUを積んだパソコン(Apple SiliconやCore i7など)を使っていても、1つのコアだけに負荷が集中してしまいます。
preprocessorMaxWorkers: trueを指定すると、Workerスレッドを使ってSCSSのコンパイル処理を複数のCPUコアで並列実行するため処理時間を短縮できます。
プロジェクトの規模や開発環境のCPUコア数によって差は出ますが、SCSSを使用している環境だと、大規模サイトであればSCSSのコンパイルが倍以上速くなりますので、設定することをオススメします。



