Я думаю, что ваша проблема связана с неверным разрешением пути в вашей конфигурации:
include: path.resolve(__dirname, 'scss/custom.scss'),
Это означает, что веб-пакет должен включать только ресурс, расположенный под {root}/scss/custom.scss
, и, учитывая ваше объяснение, я предполагаю, что правильный путь должен быть {root}/src/scss/custom.scss
.
Таким образом, чтобы включить ваши два файла {root}/src/scss/custom.scss
и {root}/src/styles.scss
и любые другие файлы scss в папку src
, вы можете использовать:
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
}
},
{
test: /\.scss$/,
include: /src/, // <-- Change here ---------------------
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'postcss-loader',
'sass-loader',
]
}
]
},
Вы также можете просто удалить опцию include
, если вы уверены, что в вашем проекте или модулях узлов нет других роуминговых файлов scss, которые могут быть найдены и не должны быть объединены в одно и то же время (это, вероятно, имеет место).
Вы также можете указать массив из двух файлов, добавив src в разрешении пути:
include: [
path.resolve(__dirname, 'src/scss/custom.scss'),
path.resolve(__dirname, 'src/styles.scss'),
]
****** РЕДАКТИРОВАТЬ *******
После вашего комментария и вашего репозитория есть еще несколько ошибок:
postcss-loader
не включается как зависимость dev и не конфигурируется для нее
- Вы ошибаетесь, что такое
include
опция правила. Это просто означает, что только ресурсы, соответствующие тесту включения, будут обрабатываться так, как настроено в этом правиле. Вам по-прежнему нужно требовать файлы scss в какой-то момент в вашем скрипте .
Я разветвил ваш репо и настроил правильную конфигурацию с помощью импорта scss в call_api.js (одна из ваших точек входа). Постройте, и вы увидите файл css в папке dist (я установил тупой конфиг cssnano для postcss, который будет анализироваться жестко)