vue.config.js
также позволяет использовать метод chainWebpack
.Это может быть предпочтительнее, поскольку позволяет изменять конфигурацию vue-cli.Использование configureWebpack
полностью перезаписывает конфигурацию по умолчанию, что может быть частью проблемы с настройкой вашей работы с Sass.
Эта конфигурация предназначена только для чистого CSS, но довольно похожа нау вас есть.
Только что попробовал это с некоторым Sass, встроенным в некоторые блоки стилей, и он разбивает css вендора из приложения css.
module.exports = {
chainWebpack(config) {
config
.output.chunkFilename('[name].bundle.js').end()
.optimization.splitChunks({
cacheGroups: {
vendorStyles: {
name: 'vendor',
test(module) {
return (
/node_modules/.test(module.context) &&
// do not externalize if the request is a CSS file
!/\.css$/.test(module.request)
);
},
chunks: 'all',
enforce: true
}
}
});
}
};
Обновление
Также необходимо извлечь ваши @import '../node_modules/minireset.css/minireset.sass';
и другие операторы импорта из блока style
и поместить его в блок script
вашего компонента vue:
// your component file
<script>
import "minireset.css/minireset.sass";
// rest of script
</script>
Файл все еще будет импортирован и использован в вашем блоке стилей ниже.
Мой экспорт включает поставщика. [Hash] .css и файл app. [Hash] .css.Файл приложения содержит содержимое блоков стиля.Поскольку мое тестовое приложение было простым и в вашем случае использования, файл поставщика содержит только информацию о стиле из мини-набора:
// vendor.[hash].css
/*! minireset.css v0.0.3 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}audio,embed,iframe,img,object,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0;text-align:left}
Git-репо vue app здесь .Импорт файла sass находится в HelloWorld.vue
.