react 添加less支持

一、react中添加Less/sass配置:

第一步:先释放出react配置文件(释放出config和scripts目录)

第二步:安装less或sass

  安装less:  npm install less less-loader --save-dev

第三步:node_modules目录下react-scripts-ts 配置webpack.config.dev.js和webpack.config.prod.js文件支持less

第一:改webpack.config.dev.js文件:找到module的rules规则配置

  1)test: /.css$/改成 test: /.(css|less)$/
  2)在use数组末尾添加一项: { loader: require.resolve('less-loader')}


第二:改 webpack.config.prod.js文件:找到module的rules规则配置
     1)test: /.css$/改成 test: /.(css|less)$/
     2)在use数组末尾添加一项: { loader: require.resolve('less-loader')}


 less语法:https://www.cnblogs.com/haoyijing/p/5793788.html

二、如何让react支持局部样式 (即类似于vue中的scoped)

webpack.config.dev.js中的配置改之前:
   {
        test: /.(css|less)$/,
        use: [
          require.resolve('style-loader'),
          {
            loader: require.resolve('css-loader'),
            options: {
              importLoaders: 1
            },

配置添加一项,添加完后

改之后:

         {
                test: /.(css|less)$/,
                use: [
                  require.resolve('style-loader'),
                  {
                    loader: require.resolve('css-loader'),
                    options: {
                      importLoaders: 1,
                      modules:true, //这是新添加的
                      localIdentName: '[path][name]__[local]--[hash:base64:10]'  //这是新添加的
                    },

另一个文件:webpack.config.prod.js只改一处即可

添加前:

      use: [
                {
                  loader: require.resolve('css-loader'),
                  options: {
                    importLoaders: 1,
                    minimize: true,
                    sourceMap: shouldUseSourceMap,
                  },
                },

添加一项,添加后:

      use: [
               {
                 loader: require.resolve('css-loader'),
                 options: {
                   importLoaders: 1,
                   minimize: true,
                   modules:true, //新添加的
                   sourceMap: shouldUseSourceMap,
                 },
               },
原文地址:https://www.cnblogs.com/yangyuxiaozi/p/10236072.html