Antd使用遇到问题

问题

  1. 使用create-react-app创建的 react 项目在yarn eject之后安装 antd,在 App.js 里面直接引入 Less 文件报错的解决方法
    首先改一下 webpack.config.js 配置,比照 SASS 的配置加上关于 Less 文件的 loader 解析

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    const lessRegex = /\.less$/;
    const lessModuleRegex = /\.module\.less$/;
    {
    test: lessRegex,
    exclude: lessModuleRegex,
    use: getStyleLoaders({
    importLoaders: 2,
    sourceMap: isEnvProduction && shouldUseSourceMap,
    },
    'less-loader'
    ),
    sideEffects: true,
    },
    {
    test: lessModuleRegex,
    use: getStyleLoaders({
    importLoaders: 2,
    sourceMap: isEnvProduction && shouldUseSourceMap,
    modules: true,
    getLocalIdent: getCSSModuleLocalIdent,
    },
    'less-loader'
    ),
    },

    然后由于一些问题所以再加上一个配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (preProcessor) {
    loaders.push({
    loader: require.resolve(preProcessor),
    options: {
    sourceMap: isEnvProduction && shouldUseSourceMap,
    // 添加上下面这一行
    javascriptEnabled: true
    }
    });
    }

    参考资料
    react 中使用 less 和全局样式

  1. react 项目开配置后如何使用 babel-plugin-import插件进行组件按需加载
    yarn add babel-plugin-import
    参考配置
  2. 添加完 Less 之后自定义 Less 变量的问题
    webpack.config.js 里面更改为
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    if (preProcessor) {
    let loader = require.resolve(preProcessor);
    if (preProcessor === "less-loader") {
    loader = {
    loader,
    options: {
    modifyVars: {
    "primary-color": "#DC143C",
    "link-color": "#1DA57A",
    "border-radius-base": "2px"
    },
    javascriptEnabled: true
    }
    };
    }
    loaders.push(loader);
    // loaders.push({
    // loader: require.resolve(preProcessor),
    // options: {
    // sourceMap: isEnvProduction && shouldUseSourceMap,
    // javascriptEnabled: true
    // },
    // });
    }
Author: XavierShi
Link: https://blog.xaviershi.com/2019/04/27/Antd学习/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.