мои стили не загружаются, когда я использую следующий синтаксисимпортированные стили не нагруженные ExtractTextPlugin
import '../styles/some-component.scss';
, но они будут загружаться при использовании модулей, как так (что имеет смысл, что они должны, так как у меня есть css-loader
modules
опция устанавливается в true
):
import '../styles/some-component.scss';
const className = styles.panel;
// etc...
расширить на вышесказанном, я загружаю стили в React компоненты, как так:
import React from 'react';
import '../styles/loading-overlay.scss';
const LoadingOverlay = ({ loadingMessage}) => {
return (<div className="loading-effect-overlay">
<Blah loadingMessage={loadingMessage} />
</div>
);
};
export default LoadingOverlay;
Я знаю, что мог бы легко встраивать стили через import '!style-loader!css-loader!sass-loader!../styles/loading-overlay.scss';
, но я хочу, чтобы они экспортировались в отдельный компонент css-файла.
Я использую Webpack 2.2.1 и распакуйте-Text-WebPack-Plugin 2.0.0-rc.3
Вот соответствующие (AFAIK) части WebPack конфигурации:
const extractScss = new ExtractTextPlugin({
filename: '../css/components.css',
allChunks: true,
disable: enableDevServer
});
// etc...
config.module.rules.unshift({
test: /\.scss$/,
loader: extractScss.extract({
fallback: 'style-loader',
use: isProd ?
[
{
loader: 'css-loader',
options: {
localIdentName: '[name]-[local]-[hash:base64:5]',
modules: true,
// TODO: should we be using the minimize option here?
// minimize: true,
importLoaders: 1
}
},
'postcss-loader',
'sass-loader'
] :
[
{
loader: 'css-loader',
options: {
localIdentName: '[name]-[local]-[hash:base64:5]',
modules: true,
sourceMap: true,
importLoaders: 1
}
},
'postcss-loader',
'sass-loader?sourceMap'
]
})
});
любые идеи, почему это может не работать? любую дополнительную информацию, которую я должен предоставить?
Вы имеете в виду, что для них не создается внешняя таблица стилей? где вы импортируете таблицы стилей? – thesublimeobject
Да, стили не создаются в выходном файле components.css - я импортирую таблицы стилей в компонентах React (я приведу пример выше) – Jordan
Предполагаю, что у вас есть плагин, зарегистрированный в вашем файле конфигурации ? – thesublimeobject