Reactjs 使用webpack和React在开发/生产中配置CSS模块
如何在生产中使用CSS模块并在生产中加载标准CSS文件 我正在使用Web包配置一个新的应用程序 在开发中我使用CSS模块使用网页包加载程序: 我将样式文件导入.jsx文件:Reactjs 使用webpack和React在开发/生产中配置CSS模块,reactjs,webpack,Reactjs,Webpack,如何在生产中使用CSS模块并在生产中加载标准CSS文件 我正在使用Web包配置一个新的应用程序 在开发中我使用CSS模块使用网页包加载程序: 我将样式文件导入.jsx文件: import style from './stile.scss'; export class App extends React.Component { render() { return ( <div> <div> &
import style from './stile.scss';
export class App extends React.Component {
render() {
return (
<div>
<div>
<span className={style.title}>Ciao</span>
</div>
</div>
)
}
}
通过这种方式,一切都可以正常工作(样式包含在.js文件中,并且类已正确设置)
但是在生产中?我应该让浏览器呈现webpack bundle.js输出文件中包含的所有类
我宁愿创建一个带有webpack(和ExtracttextPlugin)和我所有风格的css文件:
{
test: /\.(css|scss)$/,
loader: ExtractTextPlugin.extract('css-loader' )
}
并链接在my index.html中生成的.css
问题是现在React组件中的所有类定义不再在浏览器中呈现
我该如何解决这个问题?你不能从使用CSS模块切换到不使用它们,这是行不通的,因为你的代码依赖于CSS模块。同样,也没有理由不在生产中使用CSS模块。您想要更改的不是CSS模块,而是包含CSS的方式。您可以使用
extract text webpack plugin
将它们解压缩到一个单独的.css
文件中,而不是将其保存在JavaScript包中,但是您仍然需要对加载程序使用相同的配置
网页1
{
test: /\.(css|scss)$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader?sourceMap&modules&importLoaders=1&localIdentName=[name]-[local]___[hash:base64:5]!sass-loader?sourceMap')
}
第一个参数style loader
仅在无法提取CSS时用作回退
网页第2页
ExtractTextPlugin.extract
的参数已更改,并使用options
而不是字符串中的内联查询来提高可读性
{
test: /\.(css|scss)$/,
loader: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
{
loader: 'css-loader',
options: {
sourceMap: true,
modules: true,
importLoaders: 1,
localIdentName: '[name]-[local]___[hash:base64:5]'
}
},
{ loader: 'sass-loader', options: { sourceMap: true } }
]
})
}
您不能从使用CSS模块切换到不使用CSS模块,这是行不通的,因为您的代码依赖于CSS模块。同样,也没有理由不在生产中使用CSS模块。您想要更改的不是CSS模块,而是包含CSS的方式。您可以使用
extract text webpack plugin
将它们解压缩到一个单独的.css
文件中,而不是将其保存在JavaScript包中,但是您仍然需要对加载程序使用相同的配置
网页1
{
test: /\.(css|scss)$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader?sourceMap&modules&importLoaders=1&localIdentName=[name]-[local]___[hash:base64:5]!sass-loader?sourceMap')
}
第一个参数style loader
仅在无法提取CSS时用作回退
网页第2页
ExtractTextPlugin.extract
的参数已更改,并使用options
而不是字符串中的内联查询来提高可读性
{
test: /\.(css|scss)$/,
loader: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
{
loader: 'css-loader',
options: {
sourceMap: true,
modules: true,
importLoaders: 1,
localIdentName: '[name]-[local]___[hash:base64:5]'
}
},
{ loader: 'sass-loader', options: { sourceMap: true } }
]
})
}