Здравствуйте, дорогие читатели! Сегодня я хочу вам рассказать о канале с названием 'qbnk // Mini Apps, Development and Me'. Этот канал принадлежит стримеру, разработчику и блогеру по имени heyqbnk. Он специализируется на улучшении платформы Telegram Mini Apps, создании уникальных продуктов и выступлениях на конференциях. В его трансляциях на Twitch (twitch.tv/qbnk) вы сможете увидеть, как он работает над различными проектами, делится своими знаниями и опытом в области разработки. Не упустите возможность присоединиться к сообществу, где ценится творчество, профессионализм и стремление к совершенствованию. Подписывайтесь на канал и будьте в курсе всех новостей и событий от heyqbnk!
18 Nov, 17:38
17 Nov, 11:59
15 Nov, 08:59
13 Nov, 14:08
13 Nov, 11:08
13 Nov, 08:15
13 Nov, 08:15
12 Nov, 19:34
import image from './image.png?sharp'
import { Plugin } from 'vite';
import sharp from 'sharp';
export function imagePlugin(): Plugin {
return {
// Задаем название плагина.
name: 'image',
// Говорим Vite, что этот плагин нужно запустить
// перед встроенными плагинами Vite.
enforce: 'pre',
// Пишем функцию, которая трансформирует результат
// импорта. Тут должен быть возвращен любой JavaScript
// код. В нашем случае еще необходимо в этом коде
// сделать экспорт объекта, описывающего изображение.
async transform(code, id) {
if (id.includes('.png?sharp')) {
// По умолчанию тут будет храниться ссылка для загрузки
// этого изображения. В результате она будет использована.
const [, resolved] = code.match(/^export default "(.+)"$/);
// Загружаем изображение, получаем информацию
// о нем и создаем blurDataURL.
const image = sharp(id.slice(0, id.indexOf('?')));
const meta = await image.metadata();
const blurBuffer = await image
.blur()
.resize(10)
.toBuffer();
// Не забываем экспортировать объект, который
// потом будем использовать в нашем коде приложения.
return `export default ${JSON.stringify({
src: resolved,
width: meta.width,
height: meta.height,
mime: 'image/png',
blurDataURL: `data:image/png;base64,${blurBuffer.toString('base64')}`,
})};`;
}
// Если путь модуля под паттерн не попал, возвращаем
// null. Тогда Vite ничего с этим кодом не сделает.
return null;
},
};
}
declare module "*.png?sharp" {
interface ImageMeta {
src: string;
width: number;
height: number;
mime: 'image/png';
blurDataURL: string;
}
const meta: ImageMeta;
export default meta;
}
09 Nov, 12:41
08 Nov, 18:37
04 Nov, 14:44
04 Nov, 10:30
02 Nov, 17:13
02 Nov, 16:29