Пульс веб-платформы 14.03.2025


Новости

export default defineConfig({
files: ["**/*.js"],
extends: ["js/recommended", reactPlugin.configs.flat.recommended],
});
  • компилятор TS будет портирован на Go к 7 версии (к ноябрю 2025 ожидается бета-версия) и ускорен в 10 раз:
    • компилятор именно портируется, а не переписывается с нуля (Go хорошо подходит под формат уже имеющегося кода)
    • выигрыш по перфомансу за счёт многопоточности и отсутствия необходимости компиляции нативного кода (в JS упёрлись в потолок)
    • Go-версия может запускаться в браузере через WebAssembly
    • ожидается, что JS- и нативный движок будут существовать долгое время параллельно
  • вышла последняя глава Web Almanac про JS:
    • в среднем вес JS на сайтах дорос до 500-600kb (часть кода не используется), >20 запросов за JS на странице
    • из бандлеров чаще всего используется webpack, с заметным отставанием Parcel
    • в найденных сорсмапах: TS используется в 6% сайтов, Babel — в 12% из топа 10к мобильных сайтов
    • jQuery используется в 74% сайтов, Swiper — в 15%, React — в 10%, веб-компоненты в 7.8%
    • 67% сайтов включает бесполезно транспилированный JS-код
  • выпуск CSS @function откладывается с Chrome 136 на 139 версию, так как пока ещё устаканивается спека
  • в редакторе Zed появилась поддержка GUI для работы с git (в общем, у Zed и компании есть ещё примерно полгода-год, пока TS в VSCode станет работать супербыстро, и все перестанут с него убегать)

Проекты

  • endoflife.date — тут можно посмотреть даты поддержки многих версий либ, программ и фреймворков
  • node-modules.devnpx node-modules-inspector в вашем проекте покажет диаграмму зависимостей node_modules, их размер и связи
  • same.dev — AI-тула, которая походит по сайту и сгенерит аналог (работает только на простеньких лендосах, но делает их сложно 😕)

Статьи и демки

JS

  • если заходит речь про выбор фронтового фреймворка, лучше выбирать что-то поскучнее и стабильнее, правда стабильных и скучных фреймворков маловато (Next.js вендорлочит, Astro про контент, React Router всё ещё в пучине перерождений)
  • недавняя поддержка TS в Node вызывает улыбку на лице Ryan Dahl: в Deno TS не только тайпстрипается, но ещё и форматируется, компилируется, линтится и генерит документацию
  • паттерн возвращения return await func() хорош тем, что дождётся выполнения кода, и если нужно поймать ошибку, то выбросит её, пока не произошёл выход из функции:
const helloWorld = async () => {
try {
return await asyncHello("World");
} catch (e) {
return "Whops";
}
};

CSS

HTML

  • интересная идея использовать для визуального «сравнивателя» картинок <input type="range"> в качестве управляющего элемента для задания кастомного свойства с шириной картинки

Платформа

  • статья, где рассказывается про миграцию с одного тестового движка на другой (но это неважно), интересны три предлагаемых подхода к миграции: 1) бульдозер — мигрируем все файлы одним скопом, 2) консенсус — разделяем ответственность за каждый файл между конкретными людьми, 3) по частям — берём самый малозначительный файл, мигрируем, идём к следующему, повторяем, пока файлы не закончатся
  • git switch - или git checkout - (для староверов) переключает на прошлую ветку в гите