欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在Create React App中启用Sass和Less的方法示例

程序员文章站 2022-06-29 14:26:20
关于创建 create-react-app 项目请查看: 。 关于在 less 和 sass 如何在 create-react-app 启用 css modules,请查...

关于创建 create-react-app 项目请查看: 。

关于在 less 和 sass 如何在 create-react-app 启用 css modules,请查看我的上一篇文章: 在 create react app 中使用 css modules 。

启用 sass 语法编写 css

create-react-app 脚手架中已经添加了 sass-loader 的支持,所以只需要安装 node-sass 插件即可

安装 node-sass 插件

$ npm install node-sass --save

# 或者
# $ yarn add node-sass

用法:

编写 sass 文件:app.scss

.app {
 text-align: center;
 &-logo {
  animation: app-logo-spin infinite 20s linear;
  height: 40vmin;
 }
}

在 js 文件中直接使用:改写 app.js 文件

import react, { component } from 'react';
import logo from './logo.svg';
import './app.scss';

class app extends component {
 render() {
  return (
   <div classname="app">
    <header classname="app-header">
     <img src={logo} classname="app-logo" alt="logo" />
    </header>
   </div>
  );
 }
}

export default app;

在浏览器中查看效果

运行项目,此时在浏览器中即可查看到 logo 图片在缓慢转动。

启用 less 语法编写 css

由于 create-react-app 脚手架中并没有配置关于 less 文件的解析,所以我们需要自己进行配置。需要安装的插件 less , less-loader 。

添加 less 相关配置

在命令行运行 npm run eject 命令

此命令会将脚手架中隐藏的配置都展示出来,此过程不可逆

运行完成之后,打开 config 目录下的 webpack.config.js 文件,找到 // style files regexes 注释位置,仿照其解析 sass 的规则,在下面添加两行代码

// 添加 less 解析规则
const lessregex = /\.less$/;
const lessmoduleregex = /\.module\.less$/;

找到 rules 属性配置,在其中添加 less 解析配置

// less 解析配置
{
  test: lessregex,
  exclude: lessmoduleregex,
  use: getstyleloaders(
    {
      importloaders: 2,
      sourcemap: isenvproduction && shouldusesourcemap,
    },
    'less-loader'
  ),
  sideeffects: true,
},
{
  test: lessmoduleregex,
  use: getstyleloaders(
    {
      importloaders: 2,
      sourcemap: isenvproduction && shouldusesourcemap,
      modules: true,
      getlocalident: getcssmodulelocalident,
    },
    'less-loader'
  )
}

此时配置完成,安装 less 和 less-loader 插件即可

$ npm install less less-loader --save

用法

以下代码根据上面 sass 用法中的文件进行修改

编写 less 文件:app.less

.app {
 text-align: center;
 &-logo {
  animation: app-logo-spin infinite 20s linear;
  height: 40vmin;
 }
}

在 js 文件中直接使用:改写 app.js 文件

import react, { component } from 'react';
import logo from './logo.svg';
import './app.less';

class app extends component {
 render() {
  return (
   <div classname="app">
    <header classname="app-header">
     <img src={logo} classname="app-logo" alt="logo" />
    </header>
   </div>
  );
 }
}

export default app;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。