本页还没有译文
本页 12 段还没译成日本語,下面显示的是英文原文。How to use Sass in Next.js
还没翻译译自英文(nextjs.org)本页 12 段都还没译
Next.js has built-in support for integrating with Sass after the package is installed using both the .scss and .sass extensions. You can use component-level Sass via CSS Modules and the .module.scssor .module.sass extension.
First, install sass:
pnpmnpmyarnbun
pnpm add -D sassnpm install --save-dev sassyarn add -D sassbun add -D sassGood to know
Sass supports two different syntaxes, each with their own extension.
The .scss extension requires you use the SCSS syntax,
while the .sass extension requires you use the Indented Syntax ("Sass").
If you're not sure which to choose, start with the .scss extension which is a superset of CSS, and doesn't require you learn the
Indented Syntax ("Sass").
Customizing Sass Options
If you want to configure your Sass options, use sassOptions in next.config.
TypeScriptJavaScript
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
sassOptions: {
additionalData: `$var: red;`,
},
}
export default nextConfig/** @type {import('next').NextConfig} */
const nextConfig = {
sassOptions: {
additionalData: `$var: red;`,
},
}
module.exports = nextConfigImplementation
You can use the implementation property to specify the Sass implementation to use. By default, Next.js uses the sass package.
TypeScriptJavaScript
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
sassOptions: {
implementation: 'sass-embedded',
},
}
export default nextConfig/** @type {import('next').NextConfig} */
const nextConfig = {
sassOptions: {
implementation: 'sass-embedded',
},
}
module.exports = nextConfigSass Variables
Next.js supports Sass variables exported from CSS Module files.
For example, using the exported primaryColor Sass variable:
$primary-color: #64ff00;
:export {
primaryColor: $primary-color;
}import variables from '../styles/variables.module.scss'
export default function MyApp({ Component, pageProps }) {
return (
<Layout color={variables.primaryColor}>
<Component {...pageProps} />
</Layout>
)
}