在react项目中配置webpack并添加less

1,创建项目
npm install -g create-react-app /搭建一个全局的脚手架/
create-react-app my-demo /创建项目 my-demo是项目名字/
2,安装webpack插件
“webpack”: “4.44.2”,
“webpack-cli”: “^4.3.0”,
“webpack-dev-server”: “3.11.0”,
3,配置webpack.common.js

const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
 
module.exports = {
  // 设置为生产(production)模式
  // 生产模式默认会将js代码压缩
  // 如果你好奇打包后的文件长什么样
  // 可以将mode设置为"development",将devtool设为"none"
  mode: "production",
  // 设置入口文件
  entry: "./src/index.js",
  output: {
    // 设置出口文件名
    filename: "main.js",
    // 设置出口文件的目录
    path: path.resolve(__dirname, "dist"),
    publicPath: "/"
  },
  resolve: {
    // 设置扩展,这样导入文件时可以省去写扩展名
    extensions: [".js", ".json", ".jsx"]
  },
  module: {
    rules: [
      {
       // 对".js"或".jsx"结尾的文件使用babel-loader进行转译
       // babel-loader的配置放到".babelrc"文件内
        test: /\.jsx?$/,
        use: "babel-loader"
      },
      {
        // 对css文件先后使用css-loader和style-loader
        // css-loader可以将导入项目的css变为js模块
        // style-loader可以让页面打开时,利用js将css模块
        // 内的样式注入到html头部的style标签内
        test: /\.css$/,
        use: ["style-loader", "css-loader"]
      },
      {
        // 使用file-loader来加载图片文件
        test: /\.(png|jpg|jpeg|svg|gif)$/,
        use: "file-loader"
      },
      {
        test:/\.less$/,
        use: [
             'style-loader',
             'css-loader',
             'less-loader'
        ]
      }
    ]
  },
  plugins: [
    // // 该插件能将生成的入口js文件注入到模板html内
    // new HtmlWebpackPlugin({
    //   // 设置模板的路径
    //   template: "./src/template.html",
    //   // 设置favicon的路径
    //   favicon: "./src/assets/favicon-32x32-next.png"
    // })
  ]
};

3,修改scripts
“build”: “webpack --config webpack.common.js”,执行npm run build测试安装结果
4,安装less插件
npm install css-loader@4
npm install style-loader@1
npm install less@4 less-loader@5
npm run eject(必须先commit)不可逆
5,修改build文件夹下的webpack.config.js(需要修改三处)

// 添加// style files regexes
const lessRegex =/\.less$/;
const lessModuleRegex =/\.module\.less$/;
// getStyleLoaders函数中添加lessOptions
const getStyleLoaders = (cssOptions, lessOptions, preProcessor)=>{
	const loaders = [
      {
        loader: require.resolve('less-loader'),
        options: lessOptions,
      },
}
// module中rules中添加less
{
   test: lessRegex,
    exclude: lessModuleRegex,
    use: getStyleLoaders(
    {
      importLoaders: 2,
      sourceMap: isEnvProduction
        ? shouldUseSourceMap
        : isEnvDevelopment,
    },
    'less-loader'
  ),
  sideEffects: true,
},
{
   test: lessModuleRegex,
   use: getStyleLoaders(
     {
       importLoaders: 2,
       sourceMap: isEnvProduction
         ? shouldUseSourceMap
         : isEnvDevelopment,
       modules: {
         getLocalIdent: getCSSModuleLocalIdent,
       },
     },
     'less-loader'
   ),
 },

修改css文件为less文件测试是否成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值