小小滴我 發表於 2021-1-22 23:00:00

React使用less

<h1 id="react使用less">React使用less</h1>
<p>Tags: React, 踩坑<br>
日期: 2021/01/22</p>
<p>使用create-react-app脚手架搭建的react项目,会自带css和sass,但是没有less,如果在项目中需要使用less,需要进行下载并进行一些配置。</p>
<p>首先需要暴露Webpack配置文件,使用命令<code>npm run eject</code>命令释放,找到webpack.config.js文件</p>
<p>搜索<code>Sass</code>找到如下代码</p>
<pre><code class="language-jsx">// style files regexes
const cssRegex = /\.css$/;
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
</code></pre>
<p>在下面添加</p>
<pre><code class="language-jsx">// 添加 less 解析规则
const lessRegex = /\.less$/;
const lessModuleRegex = /\.module\.less$/;
</code></pre>
<p>然后找到如下配置</p>
<pre><code class="language-jsx">// Adds support for CSS Modules (https://github.com/css-modules/css-modules)
// using the extension .module.css
{
    test: cssModuleRegex,
    use: getStyleLoaders({
      importLoaders: 1,
      sourceMap: isEnvProduction
            ? shouldUseSourceMap
            : isEnvDevelopment,
      modules: {
            getLocalIdent: getCSSModuleLocalIdent,
      },
    }),
},
// Opt-in support for SASS (using .scss or .sass extensions).
// By default we support SASS Modules with the
// extensions .module.scss or .module.sass
{
    test: sassRegex,
    exclude: sassModuleRegex,
    use: getStyleLoaders(
      {
            importLoaders: 3,
            sourceMap: isEnvProduction
                ? shouldUseSourceMap
                : isEnvDevelopment,
      },
      'sass-loader'
    ),
    // Don't consider CSS imports dead code even if the
    // containing package claims to have no side effects.
    // Remove this when webpack adds a warning or an error for this.
    // See https://github.com/webpack/webpack/issues/6571
    sideEffects: true,
},
// Adds support for CSS Modules, but using SASS
// using the extension .module.scss or .module.sass
{
    test: sassModuleRegex,
    use: getStyleLoaders(
      {
            importLoaders: 3,
            sourceMap: isEnvProduction
                ? shouldUseSourceMap
                : isEnvDevelopment,
            modules: {
                getLocalIdent: getCSSModuleLocalIdent,
            },
      },
      'sass-loader'
    ),
},
</code></pre>
<p>直接把Sass的配置复制到下面,关键字替换为Less</p>
<pre><code class="language-jsx">//less配置    可以直接复制上面的sass配置之后改成less就行
{
    test: lessRegex,
    exclude: lessModuleRegex,
    use: getStyleLoaders(
      {
            importLoaders: 3,
            sourceMap: isEnvProduction
                ? shouldUseSourceMap
                : isEnvDevelopment,
      },
      'less-loader'
    ),
    // Don't consider CSS imports dead code even if the
    // containing package claims to have no side effects.
    // Remove this when webpack adds a warning or an error for this.
    // See https://github.com/webpack/webpack/issues/6571
    sideEffects: true,
},
{
    test: lessModuleRegex,
    use: getStyleLoaders(
      {
            importLoaders: 3,
            sourceMap: isEnvProduction
                ? shouldUseSourceMap
                : isEnvDevelopment,
            modules: {
                getLocalIdent: getCSSModuleLocalIdent,
            },
      },
      'less-loader'
    ),
},
</code></pre>
<p>保存即可</p>
<p>然后使用命令</p>
<pre><code class="language-jsx">yarn add less less-loader --save
</code></pre>
<p>最后把项目中的css文件改名为less,重启项目即可</p><br><br>
来源:https://www.cnblogs.com/qisexin/p/14315872.html
頁: [1]
查看完整版本: React使用less