Я создаю производственные сборки, используя gulp и uglify.
Он не поддерживает async
await
, поэтому решил обновить его, отправив babel
с предустановками ['@babel/preset-env']
, что позволило мне минимизировать файлы с ключевыми словами async
и await
, но некоторые js файлы, такие как atomi c. js, которые являются частью компиляции, недоступны на клиенте и выдают ошибку, такую как
Cannot set property 'atomic' of undefined
Некоторые другие библиотеки, созданные вручную, также выдают эту ошибку, поскольку не могут присоединиться к объектам окна.
Ниже приведены мои пакеты и команда gulp.
gulp.task('build', function () {
return gulp.src("someSource").pipe(babel({
presets: ['@babel/preset-env']
})).pipe(uglify(uglifyConfigs).on('error', function (e) {
console.log(e);
}))
.pipe(concat('someFile.js'))
.pipe(gulp.dest('somePath'));
});
"devDependencies":
"@babel/core": "^7.9.0",
"@babel/preset-env": "^7.9.5",
"babel-core": "^6.26.3",
"gulp-babel": "^8.0.0",
"gulp": "^4.0.0",
"gulp-change": "^1.0.2",
"gulp-css-url-adjuster": "^0.2.3",
"gulp-cssmin": "^0.2.0",
"gulp-jshint": "^2.1.0",
"gulp-minify-css": "^1.2.4",
"gulp-nodemon": "^2.4.2",
"gulp-rename": "^1.4.0",
"gulp-rev": "^9.0.0",
"gulp-sass": "^4.0.2",
"gulp-shell": "^0.7.0",
"gulp-sourcemaps": "^2.6.5",
"gulp-task-listing": "^1.1.0",
"gulp-uglify": "^3.0.2",
"gulp-util": "^3.0.8",