Выдает ошибку Uncaught ReferenceError: regeneratorRuntime is not defined, после использования async/await
Ребята! Я совсем недавно начала изучать gulp, скачала сборку с интернета. Использую async/await и мне выдает ошибку "Uncaught ReferenceError: regeneratorRuntime is not defined", я прочитала что скорей всего проблема в babel и нужно установить пакет babel-polifyl. Я его установила и занесла в gulpfile.js, но ошибка не исчезла, можете подсказать что нужно сделать. Буду очень благодарна!
main.js
async function checkName(input) {
let string = `https://...`;
let result = await fetch(string);
let data = await result.json();
let parseData = JSON.parse(data);
gulpfile.js
// Плагины и модули:
// Вводные данные:
const {src, dest, parallel, series, watch} = require('gulp');
const autoprefixer = require('gulp-autoprefixer');
const cleanCSS = require('gulp-clean-css');
const uglify = require('gulp-uglify-es').default;
const del = require('del');
const browserSync = require('browser-sync').create();
const sass = require('gulp-sass');
const rename = require('gulp-rename');
const fileinclude = require('gulp-file-include');
const gutil = require('gulp-util');
const ftp = require('vinyl-ftp');
const sourcemaps = require('gulp-sourcemaps');
const notify = require('gulp-notify');
const svgSprite = require('gulp-svg-sprite');
const webpack = require('webpack');
const webpackStream = require('webpack-stream');
const ttf2woff2 = require('gulp-ttf2woff2');
const fs = require('fs');
const tiny = require('gulp-tinypng-compress');
const rev = require('gulp-rev');
const revRewrite = require('gulp-rev-rewrite');
const revdel = require('gulp-rev-delete-original');
const htmlmin = require('gulp-htmlmin');
const babelPolyfill = require('babel-polyfill');
// DEV
// Функция преобразования svg в sprite svg:
const svgSprites = () => {
return src('./src/img/svg/**.svg')
.pipe(svgSprite({
mode: {
stack: {
sprite: "../sprite.svg" //sprite file name
}
},
}))
.pipe(dest('./app/img'));
}
// Функция преобразования дополнительных ресурсов (перенос всех файлов из папки resource в корень папки app):
const resources = () => {
return src('./src/resources/**')
.pipe(dest('./app'))
}
// Функция преобразования картинок:
const imgToApp = () => {
return src(['./src/img/**.jpg', './src/img/**.png', './src/img/**.jpeg', './src/img/*.svg', './src/img/*.webp'])
.pipe(dest('./app/img'))
}
// Функция преобразования html:
const htmlInclude = () => {
return src(['./src/*.html'])
.pipe(fileinclude({
prefix: '@',
basepath: '@file'
}))
.pipe(dest('./app'))
.pipe(browserSync.stream());
}
// Функция преобразования шрифтов:
const fonts = () => {
return src('./src/fonts/**.ttf')
.pipe(ttf2woff2())
.pipe(dest('./app/fonts/'));
}
// Маска для выгрузки шрифтов
const checkWeight = (fontname) => {
let weight = 400;
switch (true) {
case /Thin/.test(fontname):
weight = 100;
break;
case /ExtraLight/.test(fontname):
weight = 200;
break;
case /Light/.test(fontname):
weight = 300;
break;
case /Regular/.test(fontname):
weight = 400;
break;
case /Medium/.test(fontname):
weight = 500;
break;
case /SemiBold/.test(fontname):
weight = 600;
break;
case /Semi/.test(fontname):
weight = 600;
break;
case /Bold/.test(fontname):
weight = 700;
break;
case /ExtraBold/.test(fontname):
weight = 800;
break;
case /Heavy/.test(fontname):
weight = 700;
break;
case /Black/.test(fontname):
weight = 900;
break;
default:
weight = 400;
}
return weight;
}
// Маска миксина для шрифтов
const cb = () => {}
let srcFonts = './src/scss/_fonts.scss';
let appFonts = './app/fonts/';
const fontsStyle = (done) => {
let file_content = fs.readFileSync(srcFonts);
fs.writeFile(srcFonts, '', cb);
fs.readdir(appFonts, function (err, items) {
if (items) {
let c_fontname;
for (var i = 0; i < items.length; i++) {
let fontname = items[i].split('.');
fontname = fontname[0];
let font = fontname.split('-')[0];
let weight = checkWeight(fontname);
if (c_fontname != fontname) {
fs.appendFile(srcFonts, '@include font-face("' + font + '", "' + fontname + '", ' + weight +');\r\n', cb);
}
c_fontname = fontname;
}
}
})
done();
}
// Функция преобразования scss в css:
const styles = () => {
return src('./src/scss/**/*.scss')
.pipe(sourcemaps.init())
.pipe(sass({
outputStyle: 'expanded'
}).on("error", notify.onError()))
.pipe(rename({
suffix: '.min'
}))
.pipe(autoprefixer({
cascade: false,
}))
.pipe(cleanCSS({
level: 2
}))
.pipe(sourcemaps.write('.'))
.pipe(dest('./app/css/'))
.pipe(browserSync.stream());
}
// Функция преобразования scipt-ов:
const scripts = () => {
return src('./src/js/main.js')
.pipe(webpackStream(
{
mode: 'development',
output: {
filename: 'main.js',
},
module: {
rules: [{
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}]
},
}
))
// Если допустили ошибку в sctipts, показывает что она есть
.on('error', function (err) {
console.error('WEBPACK ERROR', err);
this.emit('end'); // Don't stop the rest of the task
})
.pipe(sourcemaps.init())
.pipe(uglify().on("error", notify.onError()))
.pipe(sourcemaps.write('.'))
.pipe(dest('./app/js'))
.pipe(browserSync.stream());
}
// Функция отслеживаня изменений в файлах:
const watchFiles = () => {
browserSync.init({
server: {
baseDir: "./app"
},
});
watch('./src/scss/**/*.scss', styles);
watch('./src/js/**/*.js', scripts);
watch('./src/html/*/*.html', htmlInclude);
watch('./src/*/*.html', htmlInclude);
watch('./src/resources/**', resources);
watch('./src/img/**.jpg', imgToApp);
watch('./src/img/**.jpeg', imgToApp);
watch('./src/img/**.png', imgToApp);
watch('./src/img/svg/**.svg', svgSprites);
watch('./src/fonts/**', fonts);
watch('./src/fonts/**', fontsStyle);
}
// Функция удаления ненужных файлов:
const clean = () => {
return del(['app/*'])
}
// Создание тасков:
exports.fileinclude = htmlInclude;
exports.styles = styles;
exports.scripts = scripts;
exports.watchFiles = watchFiles;
exports.fonts = fonts;
exports.fontsStyle = fontsStyle;
// Обычная сборка проекта:
exports.default = series(clean, parallel(htmlInclude, scripts, fonts, resources, imgToApp, svgSprites), fontsStyle, styles, watchFiles);
// BUILD
// Функция, сжимающая картинки:
const tinypng = () => {
return src(['./src/img/**.jpg', './src/img/**.png', './src/img/**.jpeg'])
.pipe(tiny({
key: 'HkdjDW01hVL5Db6HXSYlnHMk9HCvQfDT',
sigFile: './app/img/.tinypng-sigs',
parallel: true,
parallelMax: 50,
log: true,
}))
.pipe(dest('./app/img'))
}
// Функция преобразования scss в css (без ненужных файлов, таких как map и т.д.):
const stylesBuild = () => {
return src('./src/scss/**/*.scss')
.pipe(sass({
outputStyle: 'expanded'
}).on("error", notify.onError()))
.pipe(rename({
suffix: '.min'
}))
.pipe(autoprefixer({
cascade: false,
}))
.pipe(cleanCSS({
level: 2
}))
.pipe(dest('./app/css/'))
}
// Функция преобразования script-ов (без ненужных файлов, таких как map и т.д.):
const scriptsBuild = () => {
return src('./src/js/main.js')
.pipe(webpackStream(
{
mode: 'development',
output: {
filename: 'main.js',
},
module: {
rules: [{
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}]
},
}))
// Если допустили ошибку в sctipts, показывает что она есть
.on('error', function (err) {
console.error('WEBPACK ERROR', err);
this.emit('end'); // Don't stop the rest of the task
})
.pipe(uglify().on("error", notify.onError()))
.pipe(dest('./app/js'))
}
// Функция игнорирующая кэш (добавления в название файлов специальных символов):
const cache = () => {
return src('app/**/*.{css,js,svg,png,jpg,jpeg,woff2}', {
base: 'app'})
.pipe(rev())
.pipe(revdel())
.pipe(dest('app'))
.pipe(rev.manifest('rev.json'))
.pipe(dest('app'));
};
const rewrite = () => {
const manifest = src('app/rev.json');
return src('app/**/*.html')
.pipe(revRewrite({
manifest
}))
.pipe(dest('app'));
}
// Функция сжимающая html файл
const htmlMinify = () => {
return src('app/**/*.html')
.pipe(htmlmin({
collapseWhitespace: true
}))
.pipe(dest('app'));
}
exports.cache = series(cache, rewrite);
// Полная сборка проекта:
exports.build = series(clean, parallel(htmlInclude, scriptsBuild, fonts, resources, imgToApp, svgSprites), fontsStyle, stylesBuild, htmlMinify, tinypng);
// HOST
// Фуекция, работающая с хостингом:
const deploy = () => {
let conn = ftp.create({
host: '',
user: '',
password: '',
parallel: 10,
log: gutil.log
});
let globs = [
'app/**',
];
return src(globs, {
base: './app',
buffer: false
})
.pipe(conn.newer('')) // only upload newer files
.pipe(conn.dest(''));
}
// Загрузить сайт на хостинг:
exports.deploy = deploy;