umi-library发布的npm包,其中存在使用了css module的组件,umi-lib开启cssModules只能对umd包生效。因此安装后,导致组件样式丢失。
umi本身支持cssModulesExcludes的配置进行排除,能否添加cssModulesIncludes配置以包含node_modules下的目录?
如果有其它解决方式,望解答,十分感谢。
可通过chainWebpack设置less-in-node_modules实现,如下:

esm 和 cjs 使用 rollup 方式,也是会处理 css modules 的;babel 方式肯定不行,因为不转 css 文件的。
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
@sorrycc
最近也遇到同样的问题:
使用 dumi 开发组件,组件中用了 cssModules,采用 babel 打包方式(为了拆分文件),
由于是文件到文件的编译,不会处理 css,导致编译产物仍然是形如:import Styles from 'style/index.css',在 umi 项目中使用组件的时候,cssModules 没有处理 node_modules 下的样式,导致组件样式问题,
解决方案:
添加对 node_modules 下的 module.rule
// .umirc.ts
chainWebpack: (config) => {
config.module
.rule('cssModules-in-node_modules')
.test(/\.css$/)
.include
.add(path.resolve(__dirname,'./node_modules/lean'))
.end()
.use('css-loader')
.loader('css-loader')
.options({
modules: true,
importLoaders: 2,
})
}
然而不起作用,求解,是我配置的不对么?
Most helpful comment
可通过chainWebpack设置less-in-node_modules实现,如下:
