Наконец я начал использовать style-loader / useable вместо vue-style-loader
для определенных файлов.Я добавил одно дополнительное правило ('useable-styles') для scss
загрузчика.Вот часть моей конфигурации веб-пакета:
export default {
module: {
scss: {
test: /\.scss$/,
oneOf: {
'useable-styles': {
test: /AppHomepage\.scss$/,// pattern for useable styles
use: {
'style-loader': {
loader: 'style-loader/useable',
options: {
sourceMap: false,
},
},
'css-loader': { /*...*/ },
'resolve-url-loader': { /*...*/},
'sass-loader': { /*...*/},
},
},
'vue-modules': { /*...*/},
vue: { /*...*/},
normal: { /*...*/},
},
},
},
};
Затем я загружаю стили в JS, например:
import styles from './AppHomepage.scss';
// @vue/component
export default {
name: 'app-homepage',
beforeCreate() {
styles.use();
},
destroyed() {
styles.unuse();
},
};
И вызываю styles.use();
или styles.unuse();
, когда это необходимо, и это работает.
Это не идеальное решение, но оно будет работать как временное решение и ждать рефакторинга.