用create-react-app创建的项目如何启用Less Vars

发布于 2022-09-05 14:46:33 字数 2615 浏览 29 评论 0

参考本文: https://ant.design/docs/react...

create-react-app antd-demo
cd antd-demo
yarn add antd
yarn run eject
yarn add babel-plugin-import --dev
yarn add less less-loader --dev

启用CSS Module

      {
        test: /\.css$/,
        use: [
          require.resolve('style-loader'),
          {
            loader: require.resolve('css-loader'),
            options: {
              importLoaders: 1,
              modules: true,
              localIdentName: '[name]__[local]___[hash:base64:5]',
            },
          },
          {
            loader: require.resolve('postcss-loader'),
            options: {
              // Necessary for external CSS imports to work
              // https://github.com/facebookincubator/create-react-app/issues/2677
              ident: 'postcss',
              plugins: () => [
                require('postcss-flexbugs-fixes'),
                autoprefixer({
                  browsers: [
                    '>1%',
                    'last 4 versions',
                    'Firefox ESR',
                    'not ie < 9', // React doesn't support IE8 anyway
                  ],
                  flexbox: 'no-2009',
                }),
              ],
            },
          },
        ],
      },

Less Loader

 // Parse less files and modify variables
      {
        test: /\.less$/,
        use: [
          require.resolve('style-loader'),
          require.resolve('css-loader'),
          {
            loader: require.resolve('postcss-loader'),
            options: {
              ident: 'postcss', // https://webpack.js.org/guides/migrating/#complex-options              
              plugins: () => [
                require('postcss-flexbugs-fixes'),
                autoprefixer({
                  browsers: [
                    '>1%',
                    'last 4 versions',
                    'Firefox ESR',
                    'not ie < 9', // React doesn't support IE8 anyway
                  ],
                  flexbox: 'no-2009',
                }),
              ],
            },
          },
          {
            loader: require.resolve('less-loader'),
            options: {
              //modifyVars: { "@primary-color": "#1DA57A" },
            },
          },
        ],
      },

如何在引用Less文件中启用CSS Module的变量?

import styles from './Header.less'

<div className={styles.header}>
 ...
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

狠疯拽 2022-09-12 14:46:33

试试我的

{
    test: /\.less$/,
    use: [
      'style-loader',
      {
        loader: 'css-loader',
        options: {
          modules: true,
          sourcemap: true,
          localIdentName: '[name]__[local]___[hash:base64:5]'
        }
      },
      {
        loader: "less-loader" // compiles Less to CSS
      },
      {
        loader: 'postcss-loader',
      }
    ],
    include: paths.appSrc
  }
夕嗳→ 2022-09-12 14:46:33

@小奶桶 会出现这样的问题:

./~/antd/lib/alert/style/index.less
Module parse failed: D:\reactdemos\utms\node_modules\antd\lib\alert\style\index.less Unexpected character '@' (1:0)
You may need an appropriate loader to handle this file type.
| @import "../../style/themes/default";
|
| @alert-prefix-cls: ~"@{ant-prefix}-alert";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文