У меня довольно большая проблема с моим приложением sapper. Я использую накопительный пакет с подключаемым модулем svelte-preprocess для преобразования моего scss em > в css:
const preprocess = sveltePreprocess({
scss: {
data: `@import '${join(process.cwd(), "src/styles/main.scss")}';`,
includePaths: ["node_modules", "src"],
},
postcss: {
plugins: [...],
},
});
После этого я хочу запустить другой препроцессор, svelte-image, чтобы оптимизировать мои изображения. Проблема здесь в том, что, согласно дизайну препроцессоров, те, которые влияют на разметку, всегда будут запускаться первыми. Это приведет к сбою моего препроцессора изображения, поскольку он встретит файлы scss и не сможет их передать.
Лучшим решением для меня было бы написать собственный препроцессор, который выполняет стилизацию, а затем вызывает библиотеку изображений. В документации есть несколько примеров, но я их не совсем понимаю. Если я попробую этот пример:
const svelte = require('svelte/compiler');
const { code } = await svelte.preprocess(source, [
{
markup: () => myPreprocess()
style: () => imagePreprocess()
}
], {
filename: 'App.svelte' // Which file would that be for sapper?
});
Я получаю сообщение об ошибке, что источник неизвестен. Так может ли кто-нибудь указать мне в правильном направлении, как правильно и вызвать этот конкретный препроцессор? Или, может быть, лучшее решение ;-)