首页 > 开发 > JS > 正文

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

2024-05-06 16:47:45
字体:
来源:转载
供稿:网友

关于在 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"    </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"    </header>   </div>  ); }}export default App;

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


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表