С помощью @Manoj мне удалось загрузить мои CSS-темы в мое приложение и переключать темы.
Строка { from: { glob: "assets/**" } },
копирует таблицы стилей из 'assets /' в 'dist / assets'.Но так как я хочу сохранить все свои стили в одной папке ('styles /'), мне нужно было обновить код до: { from: { glob: "styles/themes/**" }, to: 'assets/' },
.
И так как я использую scss вместо css, мне все еще нужно преобразовать стиль.Мы можем сделать это с помощью renderSync
метода node-sass .(см. этот пост для получения дополнительной информации)
Когда мы объединяем это, мы получаем следующий код:
const scss = require('node-sass');
....
new CopyWebpackPlugin([
{
from: { glob: "styles/themes/*.scss" },
to: 'assets/themes/[name].css',
transform(content, path) {
const result = sass.renderSync({ file: path });
return result.css.toString();
},
},
{from: {glob: "fonts/**"}},
{from: {glob: "**/*.jpg"}},
{from: {glob: "**/*.png"}},
], {ignore: [`${relative(appPath, appResourcesFullPath)}/**`]}),
Это копирует и компилирует файлы тем из styles/themes/
до assets/themes/
.Обратите внимание, что это также игнорирует любые подпапки, расположенные в папке тем.Таким образом, мы можем сделать следующее:
themes/
-- parts/ // <-- This folder will not be copied
---- _dark-variables.scss
---- _light-variables.scss
-- dark.scss // <-- This will be compiled into assets/themes/dark.css
-- light.scss // <-- This will be compiled into assets/themes/light.css