В этой статье объясняется, как включить Sass и Less в шаблоне Create React App.
предисловие
Для создания проекта create-реагировать-приложение см.:Установка и создание приложения create-реагировать.
Посмотрите мой последний пост о том, как включить CSS-модули в create-react-app в less и sass:Используйте модули CSS в приложении React Create.
Пишите CSS с включенным синтаксисом Sass
В скаффолдинг 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;
Посмотреть эффект в браузере
Запустите проект, и вы увидите, что изображение логотипа медленно вращается в браузере.
Написание CSS с включенным синтаксисом Less
Поскольку парсинг меньшего количества файлов не настроен в скаффолдинге create-react-app, нам нужно настроить его самостоятельно. Плагины, которые необходимо установить
less
,less-loader
.
Добавить менее связанную конфигурацию
-
запустить в командной строке
npm run eject
ЗаказЭта команда отобразит все скрытые конфигурации в скаффолдинге, этот процесс необратим.
-
После запуска откройте файл webpack.config.js в каталоге конфигурации и найдите
// style files regexes
Прокомментируйте локацию, следуйте правилам парсинга sass, добавьте две строчки кода ниже// 添加 less 解析规则 const lessRegex = /\.less$/; const lessModuleRegex = /\.module\.less$/;
-
Найдите конфигурацию атрибута rules и добавьте к ней конфигурацию меньшего парсинга.
!!!Уведомление:Здесь необходимо отметить следующее
less
Правила конфигурации находятся вsass
Правила парсинга можно ниже, если разместитьfile-loader
Ниже правила парсинга,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 выше
Запись меньшего файла: 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;
Посмотреть эффект в браузере
Запустите проект, и вы увидите, что изображение логотипа медленно вращается в браузере.
Напомнить еще раз
Обратите внимание при настройке: оless
Правила конфигурации находятся вsass
Правила парсинга можно ниже, если разместитьfile-loader
Ниже правила парсинга,less
Разбор файла не будет работать.