vite的cssmoudles的scopeBehaviour示例代码
时间: 2023-06-25 13:05:43 浏览: 136
Vue3+vite搭建基础架构示例代码
下面是一个使用 Vite 和 CSS Modules 的简单示例:
```html
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Vite + CSS Modules</title>
<link rel="stylesheet" href="/src/index.css" />
</head>
<body>
<h1 class="title">Hello, world!</h1>
<p class="text">This is a demo of Vite + CSS Modules.</p>
</body>
</html>
```
```css
/* index.css */
.title {
color: red;
}
.text {
color: blue;
}
```
```js
// vite.config.js
import { defineConfig } from 'vite'
export default defineConfig({
css: {
modules: {
// 自定义 CSS Modules 的命名规则
generateScopedName: '[local]__[hash:base64:5]',
// 开启 CSS Modules 的 scopeBehaviour 选项
scopeBehaviour: 'local',
},
},
})
```
在上面的示例中,我们在 `vite.config.js` 文件中开启了 CSS Modules 的 `scopeBehaviour` 选项,并设置为 `local`。这意味着样式类名将被编译成本地作用域,不会被全局共享。
在 HTML 文件中,我们使用了两个样式类名 `.title` 和 `.text`,它们都是局部作用域的,不会影响全局样式。
如果你希望在 JavaScript 中使用 CSS Modules,可以像这样导入 CSS 文件:
```js
import styles from './index.css'
console.log(styles.title) // "index__title__2-8QO"
console.log(styles.text) // "index__text__3gj6p"
```
在上面的示例中,我们使用 `import` 导入了 CSS 文件,然后通过 `styles` 对象访问样式类名,它们都是局部作用域的。注意,样式类名被自动重命名,以确保它们的唯一性。
阅读全文