Как научить компилятор js обрабатывать конструкцию опциональной цепочки '?.' в gulp?

Пытаюсь скомпилировать код типа
const unit = newInput.closest("[data-unit]")?.dataset.unit;
с использованием опциональной цепочки. Но компилятор при использовании gulp-minify на шаге .pipe(minify()) выдает ошибку:
[04:18:25] 'js-concat' errored after 2.47 s
[04:18:25] TypeError in plugin "gulp-minify"
Message:
    src\js\chat\_chat.js
Cannot read properties of undefined (reading 'replace') (line: undefined, col: undefined, pos: undefined
Details:
    domainEmitter: [object Object]
    domainThrown: false

*Но эти ошибки как правило малоинформативны
Без минификации все работает нормально. Как подружить опциональную цепочку и минификатор?
  • Вопрос задан
  • 94 просмотра
Решения вопроса 2
Get-Web
@Get-Web Куратор тега JavaScript
Front-End Developer
Замени на связку:

import babel from "gulp-babel";
import uglify from "gulp-uglify";


.pipe(
	babel({
		presets: ["@babel/env"],
	})
)
.pipe(uglify())
Ответ написан
Комментировать
kisssk
@kisssk Автор вопроса
В общем, я покопалась и выяснила, что gulp-minify использует terser и чтобы последний компилировал опциональные цепочки, нужно обновить terser на версию не меньше 5.2.0, но при этом ваш код полностью должен соответствовать стандарту ECMAScript 6. Мой видимо не совсем соответствует, потому что посыпались ошибки. Пришлось откатиться. А потом и правда перейти gulp-uglify, он работает корректно, спасибо комментатору выше за совет)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
27 мая 2024, в 12:26
30000 руб./за проект
27 мая 2024, в 12:25
5000 руб./за проект
27 мая 2024, в 11:51
100000 руб./за проект