Я воспроизвел проблему и попытался минимизировать простой js файл, который использует ES6 specifications
и более поздние версии.
Test. js
async function foo() {
await bar();
}
async function bar() {
for (var i = 0; i < 10; i++) { // do some work
}
}
Затем я попытался чтобы минимизировать файл с помощью инструмента Bundler и Minifier , выдается следующее сообщение об ошибке:
Это означает, что Bundler and Minifier не не поддерживает спецификации ES6 и более поздние версии.
Для подтверждения я начал поиск этой проблемы в Github и обнаружил такие же поведения
Я могу с уверенностью утверждать, что это Transpilers Issue
Transpilers, или source- Компиляторы "исходный код" - это инструменты, которые читают исходный код, написанный на одном языке программирования, и создают эквивалентный код на другом языке. nguage.
Наиболее распространенным и широко используемым является TypeScript
TypeScript
, в некоторых случаях Transpiles ES6
и позже до ES5
Например: , если вы установите для Target значение ES6
и ES2015
, оно перейдет к ES5
. Однако, если вы нацелились на ES2020
, НЕ транспонируете ваш код.
В конце
- BundlerMinifier использует NUglify, который выполняет минимизацию кода javascript Так что НЕТ способа минимизировать ES6 и более поздние коды с использованием Bundler и Minifier. Если Автор не решит поддержать его.
- Вы столкнулись с проблемой Transpile (например: ES6 - ES5).
- Bundler & Minifier не удаляет неизвестные ключевые слова как
async
но выдается ошибка