reactjs - "composes"无法使用 babel-plugin-react-css-modules

标签 reactjs webpack babeljs css-modules react-css-modules

我正在尝试在我的 React 项目中使用 css 模块。我能够做这样的事情:

import styles from './demo.css'
const Demo = () => <div styleName="demo">Hello</div>

我的样式是从 CSS 中提取出来的,并成功添加了前缀。然而,当我尝试使用CSS模块的“撰写”功能时,它似乎被完全忽略了。我什至没有从其他文件导入 - 只是尝试编写本地类。但是,当我克隆演示项目 ( https://github.com/gajus/babel-plugin-react-css-modules/tree/master/demo ) 并在 CSS 中添加“composes”时,它就可以工作了。我不明白我的代码和演示中的代码有什么区别...

我的 webpack 加载器是:

loaders: [
      {
        test: /\.jsx?$/,
        loader: 'babel?cacheDirectory',
        include: PATHS.src
      },
      {
        test: /\.css$/,
        loaders: [
          'style',
          'css?importLoader=1&modules&localIdentName=[path]___[name]__[local]___[hash:base64:5]',
        ],
        include: PATHS.src,
      }
    ]

这是我的 .babelrc:

{
  presets: [
    "es2015",
    "react",
  ],

  plugins: [
    [
      "react-css-modules",
      {
        generateScopedName: "[path]___[name]__[local]___[hash:base64:5]"
      }
    ],
    "transform-object-rest-spread",
  ],
  env: {
    development: {
      presets: [
        "react-hmre"
      ]
    }
  }
}

最佳答案

这里有同样的问题。我发现的解决方法是使用 vars 代替 compose。

/* colors.css */
:root {
  --color: #4A90E2
}

/* button.css */
@import 'colors.css';

.button {
  color: var(--blue);
}

关于reactjs - "composes"无法使用 babel-plugin-react-css-modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41518465/

相关文章:

javascript - Mvc 管理上下文和可重用组件

css - 不能使用 css react js 服务器端

javascript - React 无法解构 Edge 中的restProps

javascript - Angular:无效的配置对象。 Webpack 已使用与 API 架构不匹配的配置对象进行初始化

webpack - PhotoSwipe 和 Webpack : Can't resolve path

webpack - babelRelayPlugin、transform-runtime、passPerPreset 是做什么的? (babel+webpack配置)

javascript - 告诉 react-native 打包器观看非 JavaScript 文件

javascript - 按 event_id 过滤门票

javascript - `@babel/preset-env` + `useBuiltIns` + `@babel/runtime` + `browserslistrc` 的最佳做法是什么

javascript - 动态 JSX 元素/标签名称