Я использую Webpack 4
и mini-css-extract-plugin
в приложении php. Я сохраняю все стили css
, которые я написал, в файлах scss
, но в некоторых случаях, когда я импортирую внешнюю библиотеку, я импортирую ее CSS в сценарий, где я ее использую. Моей конечной целью было бы иметь все стили CSS в одном файле CSS, который я могу вручную включить в представление php, но в данный момент я получаю scss в файле и css из библиотек в другом.
Моя текущая конфигурация веб-пакета такая:
module.exports = {
devtool: 'source-map',
entry: {
style: './resources/assets/sass/style.scss',
...
},
optimization: {
splitChunks: {
cacheGroups: {
default: false,
styles: {
name: 'styles',
test: /\.s?css$/,
minChunks: 1,
reuseExistingChunk: true,
enforce: true,
},
commons: {
test: /[\\/]node_modules[\\/]/,
name: 'vendors',
chunks: 'all',
//minChunks: 2,
},
},
},
},
module: {
rules: [
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
],
},
{
test: /\.scss$/,
use: [
'style-loader',
MiniCssExtractPlugin.loader,
'css-loader',
{
loader: 'postcss-loader',
options: { config: { path: 'postcss.config.js' } },
},
'sass-loader',
],
},
plugins: [
new MiniCssExtractPlugin({
filename: '[name].[chunkhash].css',
}),
new webpack.ProvidePlugin({
noUiSlider: 'nouislider',
}),
]
Стили scss
работают правильно, но тогда в одном скрипте у меня есть это:
import 'nouislider/distribute/nouislider.css';
Это из сценария, включенного в ProvidePlugin
, и этот CSS заканчивается в файле vendors.css
, в то время как я хотел бы, чтобы он был в style.css
вместе с остальными.
Что я делаю не так?
Edit:
Как и предполагалось, я создал репозиторий github, воссоздающий проблему:
https://github.com/carlotrimarchi/webpack-test