關于在 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武林網。
新聞熱點
疑難解答