UNPKG

customize-cra-less-loader

Version:

Add less loader to any create-react-app using customize-cra

2 lines (1 loc) 1.3 kB
"use strict";const s=require("fs"),e=require("path"),o=require("react-scripts/config/paths"),r=s.existsSync(e.join(o.appPath,"tailwind.config.js"));module.exports=(s={})=>e=>{const t=require("mini-css-extract-plugin"),l=s.cssLoaderOptions||{},i=s.lessLoaderOptions||{},n=/\.module\.less$/,a=process.env.NODE_ENV,p="development"===a,c="production"===a,u=c?"false"!==process.env.GENERATE_SOURCEMAP:p,d=(s,e)=>{const l=["postcss-flexbugs-fixes",["postcss-preset-env",{autoprefixer:{flexbox:"no-2009"},stage:3}]];r?l.unshift("tailwindcss"):l.push("postcss-normalize");const i=[p&&require.resolve("style-loader"),c&&{loader:t.loader,options:o.publicUrlOrPath.startsWith(".")?{publicPath:"../../"}:{}},{loader:require.resolve("css-loader"),options:s},{loader:require.resolve("postcss-loader"),options:{postcssOptions:{ident:"postcss",config:!1,plugins:l},sourceMap:u}}].filter(Boolean);return e&&i.push(e),i},f={loader:require.resolve("less-loader"),options:{sourceMap:u,...i,lessOptions:{rewriteUrls:"local",...i.lessOptions||{}}}},h={importLoaders:2,sourceMap:u},m=e.module.rules.find(s=>Array.isArray(s.oneOf)).oneOf;return m.splice(m.length-1,0,{test:/\.less$/,exclude:n,use:d({...h,...l,modules:!1},f)},{test:n,use:d({...h,...l,modules:{localIdentName:"[local]--[hash:base64:5]",...l.modules}},f)}),e};