Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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 使用CSS加载程序保留空/未使用的类_Webpack_Webpack 2_Css Loader_Sass Loader_Cssnano - Fatal编程技术网

Webpack 使用CSS加载程序保留空/未使用的类

Webpack 使用CSS加载程序保留空/未使用的类,webpack,webpack-2,css-loader,sass-loader,cssnano,Webpack,Webpack 2,Css Loader,Sass Loader,Cssnano,我正在通过Webpack2构建React应用程序,通过SASS加载程序和CSS加载程序生成CSS。以下是我的Webpack 2配置: loaders: [ { test: /\.(css|scss)$/, use: ExtractTextPlugin.extract({ fallback: 'style-loader', use: [

我正在通过Webpack2构建React应用程序,通过SASS加载程序和CSS加载程序生成CSS。以下是我的Webpack 2配置:

loaders: [
        {
            test: /\.(css|scss)$/,
            use: ExtractTextPlugin.extract({
                fallback: 'style-loader',
                use: [
                    {
                        loader: 'css-loader',
                        options: {
                            modules: true,
                            importLoader: 1,
                            camelCase: true,
                            localIdentName: '[local]',
                            minimize: {
                                safe: true,
                            },
                        }
                    },
                    {
                        loader: 'sass-loader'
                    }
                ],
            })
        },
        [...]
     ]
我将结果CSS写入文件,同时允许我的React应用程序在Javascript对象中获得结果类名,以分配给各种HTML元素

我看到的一个怪癖是空类(不包含实际样式的类选择器)没有被保留,并且在生成时从类列表中丢弃。我已经读到cssloader使用CSSNano,默认情况下,它的配置通过缩小来删除未使用的/空的类

根据CSS加载器,您可以通过
minimize
选项设置CSSNano选项。这就是为什么根据CSSNano的选择,我将safe设置为true

不幸的是,仍然没有保留空的/未使用的类。我想知道我是否正确地通过了CSSNano选项


有没有想过为什么空类不会持续存在?

你为什么要这样做?它违背了使用css模块的整个想法,不是吗?是的,作为它的默认配置。我们正试图将其集成到我们的React环境中,尽管有时我们将类推送到HTML元素上,以便外部组件能够通过这些类访问这些元素,即使其相关的SCSS文件可能没有属于它的样式(将清理工作推到它自己身上)。因此,在大多数情况下,空类清理是首选,在我们的情况下(至少目前),我们希望禁用此清理。我们有过类似的情况,我们希望元素保留类名,以便全局css可以对其进行样式设置(例如图标字体)。我们发现classnames包()非常有用。如果我们定义了apply类名cx(“local_styles”、“icon_global”),并且在本地css中没有定义icon_global,则类名包会保留icon_global类的原样-只有本地_样式会被css模块统一