Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 导入的scss类名转换为哈希_Webpack_Webpack 2 - Fatal编程技术网

Webpack 导入的scss类名转换为哈希

Webpack 导入的scss类名转换为哈希,webpack,webpack-2,Webpack,Webpack 2,我有一个网页包配置(基于React)。我看到的一件事是,导入的scss文件上的类名被转换为散列 我尝试将样式作为对象导入,并按名称引用样式类,但它们只是消失了。没有在其他项目上看到这种行为,也不确定我做错了什么 import './styles/scss/app.scss'; function App() { return ( <Provider store={ store }> <IntlProvider>

我有一个网页包配置(基于React)。我看到的一件事是,导入的scss文件上的类名被转换为散列

我尝试将样式作为对象导入,并按名称引用样式类,但它们只是消失了。没有在其他项目上看到这种行为,也不确定我做错了什么

import './styles/scss/app.scss';

function App() {
    return (
      <Provider store={ store }>
          <IntlProvider>
              <MuiThemeProvider>
                  <Switch>
                      <Route exact path="/" component={Home} />
                      <Route component={Error404} />
                  </Switch>
              </MuiThemeProvider>
          </IntlProvider>
      </Provider>
    )
}


import styles from './portfolio.scss';

[...]
return (
<div className={cx(styles.phoneAni, {active: imageOpen})}>
    <img src="img/iphone_s01_1.png"/>
    <img src="img/iphone_s01_0.png"/>
    <img src="img/iphone_s02_2.png"/>
</div>
);

类名被转换为散列,因为要禁用它,必须在css加载程序选项对象中设置
modules:false,
。或者,您可能仍然使用css模块,但需要翻译html中的类以使用生成的类

localIdentName怎么样?
默认值为u[hash:base64:22]

webpack.config.js

test: /\.(css|sass)$/,
use: [{
  loader: "css-loader?modules",
  options: {
    modules: true,
    localIdentName: '[local]'
    //sample(if u use custom className)
    //localIdentName: '[path][name]__[local]--[hash:base64:5]'
    //localIdentName: '[local]--[hash:base64:5]'   
  }
  ...
现在你可以使用

{
      loader: 'css-loader',
      options: {
           modules: {
                localIdentName: '[local]__[hash:base64:5]'
           }
      }
},

更多信息

另一种处理方法是,如果您仍然想使用css模块,那么我发现它围绕着您不想使用的css进行转换。在
:global{}
{
      loader: 'css-loader',
      options: {
           modules: {
                localIdentName: '[local]__[hash:base64:5]'
           }
      }
},