Как научить компилятор 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

*Но эти ошибки как правило малоинформативны
Без минификации все работает нормально. Как подружить опциональную цепочку и минификатор?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 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, он работает корректно, спасибо комментатору выше за совет)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект