Ответ
Да, можно, но это требует дополнительных усилий. Основные подходы:
- Транспиляция (Babel) – конвертирует современный JS (ES6+) в ES5.
- Полифилы (core-js) – добавляют отсутствующие методы (Promise, fetch и т.д.).
- Автопрефиксер – добавляет вендорные префиксы для CSS.
- Фолбэки – альтернативные решения для неподдерживаемых API.
Пример транспиляции через Babel:
// Исходный код (ES6)
const foo = () => 'bar';
// После транспиляции (ES5)
var foo = function foo() {
return 'bar';
};
Важно учитывать:
- Производительность (полифилы увеличивают размер бандла)
- Время разработки
- Целевые браузеры (можно настроить через browserslist)
Для сложных проектов лучше использовать готовые сборки (например, create-react-app с настройкой browserslist).