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

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

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

Войти через центр авторизации
Похожие вопросы
27 апр. 2024, в 13:49
300000 руб./за проект
27 апр. 2024, в 13:30
30000 руб./за проект
27 апр. 2024, в 13:22
600 руб./за проект