Reactjs 第4页+;物料界面:JSS在生产模式下是如何缩小的?

Reactjs 第4页+;物料界面:JSS在生产模式下是如何缩小的?,reactjs,webpack,material-ui,jss,Reactjs,Webpack,Material Ui,Jss,我正在使用网页4.10.2和材质UI v1.1.0进行一个项目。正在谈论类名生成器,我对缩短类名的结果没有意见,但在构建过程中有一些我不理解的地方,我可能缺少一个网页包模块或插件(例如,我只使用babel loader,没有插件)。 我刚刚尝试了许多与UglifyJsPlugin的组合(通过优化.minimizer)压缩和mangle,但没有任何效果 问题是: 文档样式标记中插入的类名会缩短,但正文中的相应类不会缩短: 发展模式 使用webpack-d,在开发模式下构建我的项目时,一切都很好:

我正在使用网页4.10.2材质UI v1.1.0进行一个项目。正在谈论类名生成器,我对缩短类名的结果没有意见,但在构建过程中有一些我不理解的地方,我可能缺少一个网页包模块或插件(例如,我只使用babel loader,没有插件)。 我刚刚尝试了许多与UglifyJsPlugin的组合(通过优化.minimizer)压缩mangle,但没有任何效果

问题是:

文档样式标记中插入的类名会缩短,但正文中的相应类不会缩短:

发展模式 使用
webpack-d
,在开发模式下构建我的项目时,一切都很好:

<style type="text/css" data-jss="" data-meta="LayoutNavBar">
    .LayoutNavBar-flex-4 {
      flex: 1;
    }
</style>

.布局NAVBAR-flex-4{
弹性:1;
}
在主体中,对应的类

<h2 class="LayoutNavBar-flex-4">Title</h2>
标题
生产方式 样式被破坏当我在生产模式下构建时,我有带有缩短类名的内联样式(这很好):


.jss4{
弹性:1;
}
但是在body中,CSS类仍然有其长名称

<h2 class="LayoutNavBar-flex-4">Title</h2>
标题
而不是:

<h2 class="jss4">Title</h2>
标题

我错过了什么使它工作?谢谢,我也有同样的问题。在我的例子中,我从服务器包中排除了
node\u模块
,因此Webpack不会替换模块文件中的
process.env.node\u env
,而在我的客户端包中,包含了
node\u模块
,它确实这样做了。因此,要缩小服务器上的CSS,您需要在捆绑包中包含
node\u模块
,或者在运行服务器捆绑包的命令行会话中设置
node\u ENV
环境变量


我能找到的最好的(与平台无关的)方法是运行“npm start--production”,或者将其作为脚本添加到
package.json
。这将自动将脚本运行的节点会话的
NODE_ENV
环境变量设置为
production

,基于此,可能需要定义NODE_ENV变量。非常确定-d和-p不设置NODE_ENV。在手机上很难确认。谢谢jens!这就解决了问题:)
<h2 class="jss4">Title</h2>