Вам нужно css модулей * от 1002 * до область применения стилей для конкретного компонента. Потому что css стилей имеют глобальный характер.
Быстрый вопрос :
Используете ли вы mini - css -extract-plugin в вашей конфигурации веб-пакета? Если это так, когда вы создаете приложение через веб-пакет, все стили в js ( импортированные s css файлы ) извлекаются в один файл и вводится в индекс. html стр.
Сначала вам нужно преобразовать s css файлы в css модулей и сделать ниже, вы получите то, что вам нужно.
Эта ссылка должна помочь вам преобразовать файлы s css в css модули.
Пример :
{
test: /\.css$/i,
loader: 'css-loader',
options: {
modules: true, // this one make existing scss to css modules
},
},
Предположим, что Вы конвертировали модули s css в css. Давайте рассмотрим пример.
Например: page1.s css, page2.s css до стилей. css
Я бы предложил разделить стили в соответствии с вашими потребностями. Давайте рассмотрим пример для приведенного выше кода.
Например: vendor. css (содержит bootstrap и общие стили) и main. css (содержит стили компонентов )
Пример: webpack.config. js
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
function recursiveIssuer(m) {
if (m.issuer) {
return recursiveIssuer(m.issuer);
} else if (m.name) {
return m.name;
} else {
return false;
}
}
module.exports = {
entry: {
vendor: path.resolve(__dirname, 'src/vendor'),
main: path.resolve(__dirname, 'src/main'),
},
optimization: {
splitChunks: {
cacheGroups: {
vendor: {
name: 'foo',
test: (m, c, entry = 'vendor') =>
m.constructor.name === 'CssModule' && recursiveIssuer(m) === entry,
chunks: 'all',
enforce: true,
},
main: {
name: 'bar',
test: (m, c, entry = 'main') =>
m.constructor.name === 'CssModule' && recursiveIssuer(m) === entry,
chunks: 'all',
enforce: true,
},
},
},
},
plugins: [
new MiniCssExtractPlugin({
filename: '[name].css',
}),
],
module: {
rules: [
{
test: /\.css$/,
use: [MiniCssExtractPlugin.loader, 'css-loader'],
},
],
},
};
Над файлом приведен пример, взятый непосредственно со страницы mini- css -extract-plugin .
Объяснение:
Над конфигурацией создаст два файла, один для поставщика. css и один для main. css. Таким образом, вы можете создать n
количество стилей для ваших маршрутов и использовать его соответственно.
Надеюсь, эта помощь!