Je souhaite utiliser le préprocesseur LESS dans mon application créer-réagir.
React Code
ReactDOM.render(
<form>
<input type="email" data-info="Enter Email" pattern="/\S+@\S+\.\S+/" required title="Please enter value" required="required"/>
<input type="submit"/>
</form>
,document.getElementById('root'))
index.less
body{
background: red;
}
Voici comment je le fais
Vous devriez utiliser le paquet npm node-sass-chokidar:
npm install node-sass-chokidar --save-dev
Ajoutez ensuite les éléments suivants à vos scripts npm dans package.json:
"build-css": "node-sass-chokidar src/ -o src/",
"watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive"
L’observateur trouvera tous les fichiers Sass dans les sous-répertoires src et créera un fichier CSS correspondant à côté.
N'oubliez pas de supprimer tous les fichiers css du contrôle source et d'ajouter src/**/*. Css à votre fichier .gitignore.
Enfin, vous voudrez peut-être exécuter watch-css automatiquement avec npm start et exécuter build-css dans le cadre de npm run build. Pour cela, installez le paquet npm suivant afin de pouvoir exécuter deux scripts séquentiellement:
npm install --save-dev npm-run-all
Modifiez ensuite les scripts de démarrage et de génération de npm dans le fichier package.json comme suit:
"scripts": {
"build-css": "node-sass-chokidar src/ -o src/",
"watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive"
"start-js": "react-scripts start",
"start": "npm-run-all -p watch-css start-js",
"build": "npm run build-css && react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
Voir ce lien pour plus d'informations: https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-a-css-preprocessor-sass -less-etc
Le moyen le plus simple et le plus simple d’ajouter de moins en moins de soutien avec l’application reactjs consiste à utiliser custom-react-scripts
avec create-react-app
pour le support LESS/SASS/decorators:
Installer: npm install -g create-react-app custom-react-scripts
Créer une application: create-react-app <app_name> —scripts-version custom-react-scripts
Exemple moins de fichier:
.myDiv{ background: gray; }
puis dans votre composant:
import lessStyles from '<less file path>';
<div style={lessStyles.myDiv}>
...
</div>
ou la manière habituelle:
import '<less file path>';
<div className="myDiv">
...
</div>
Pour référence:
J'ai eu un problème similaire… .. Il suffit d'inclure les lignes suivantes dans la section des règles de configuration de votre webpack ( tirées des exemples officiels moins de loader ):
{
test: /\.less$/,
use: [{
loader: 'style-loader' // creates style nodes from JS strings
}, {
loader: 'css-loader' // translates CSS into CommonJS
}, {
loader: 'less-loader' // compiles Less to CSS
}]
},
Bien sûr, vous devez ajouter les packages respectifs dans votre package.json
Et puis, dans votre code, importez simplement les styles nécessaires
import './style.less'
En utilisant une telle approche, vous ne créerez pas d’étape supplémentaire de création de fichiers CSS supplémentaires.