vite构建的react+ts项目中使用less

下载less依赖

npm install less

组件很多之间可能有类名相同,导致样式冲突,因此制定导出规则,给类名加上hash值。在vite.config.ts配置中添加以下规则。

css: {
    modules: {
      hashPrefix: 'prefix',
      generateScopedName: '[name]__[local]__[hash:base64:5]',
    },
    preprocessorOptions: {
      less: {
        javascriptEnabled: true,
      },
    },
  },

modules中hashPrefix设置生成CSS类名的哈希前缀(没生效),generateScopedName设置生成CSS类名的格式。preprocessorOptions中less中的javascriptEnabled表示在Less中启用JavaScript表达式,默认不启用。

创建less文件时需要注意文件名,需要以.module.less结尾,组件中引用代码如下。

import styles from './index.module.less'
<div className={styles.isDiv}>I am a div</div>

文件名需要.module.less结尾的原因:我们可以在vite依赖包下面的client.d.ts文件中看到以.module.less结尾的文件会定义导出类型CSSModuleClasses,不然我们导入的less样式无法使用styles.类名给标签加样式。

posted @ 2024-06-23 18:43  数星观月  阅读(292)  评论(0编辑  收藏  举报