ant-design / compatible

https://compatible.now.sh
MIT License
89 stars 23 forks source link

lerna项目中子应用无法引入compatible样式 #133

Closed stefango closed 1 year ago

stefango commented 2 years ago

@ant-design/compatible 1.1.0 antd 4.19.1

umi子应用按照如下方式引入

import '@ant-design/compatible/assets/index.less';
import 'antd/dist/antd.less';

出现以下报错,但是主应用 node_modules 中有 node_modules/antd/dist/antd.less

error  in /project/node_modules/@ant-design/compatible/assets/index.less

Module build failed (from /project/node_modules/@umijs/bundler-webpack/lib/webpack/plugins/mini-css-extract-plugin/src/loader.js):
ModuleBuildError: Module build failed (from /project/node_modules/@umijs/deps/compiled/less-loader/cjs.js):

@import (reference) 'antd/dist/antd.less';
^
Can't resolve './antd/dist/antd.less' in '/project/node_modules/@ant-design/compatible/lib/form/style'
image
zzy1661 commented 1 year ago

老哥你咋解决的

stefango commented 1 year ago

老哥你咋解决的

自己copy了一些样式,可能是umi less-loader没法解析node-modules里的包

zzy1661 commented 1 year ago

老哥你咋解决的

自己copy了一些样式,可能是umi less-loader没法解析node-modules里的包

我解决了,compatible用的是less3,需要安装3版本的less和7版本的less-loader

  chainWebpack(config, { env, webpack, createCSSRule }) {
    config.module
      .rule('lessfix').pre().test(/\.less$/).include.add(/@ant-design\/|\\compatible/).end()
      .use('less')
      .loader('less-loader')
      .tap(() => ({
        lessOptions: {
          math:'always',
          javascriptEnabled: true
        }
      }));
  },