我有一个最小的 React 组件,它由两个文件组成:button.jsx
和button.less
. 样式被导入并且类名被附加一个散列以使所有样式对组件都是本地的。
这很棒,但我想将所有组件代码放在一个文件中。是否可以在不丢失 css 模块化的情况下内联 jsx 文件中的样式?
当前代码
按钮.jsx
import React from 'react';
import styles from './button.less'
export default class Button extends React.Component {
render() {
return <button className={styles.primary}>{this.props.text}</button>;
}
}
无按钮
@import '~semantic-ui/src/definitions/elements/button.less';
.common {
composes: ui button;
}
.primary {
composes: common primary;
}
webpack.config.js(相关位)
module: {
loaders: [
{
test: /\.jsx$/,
loader: 'babel'
},
{
test: /\.less$/,
loader: "style!css?modules&importLoaders=1!less"
}
]
},
我想写什么
按钮.jsx
<style lang="less" modules>
@import '~semantic-ui/src/definitions/elements/button.less';
.common {
composes: ui button;
}
.primary {
composes: common primary;
}
</style>
import React from 'react';
export default class Button extends React.Component {
render() {
return <button className={styles.primary}>{this.props.text}</button>;
}
}
受 vue.js 和vue-loader的启发。
我相信这是这个未回答问题的重复: Using css-loader inline with Webpack + React