Error ReferenceError: regeneratorRuntime is not defined (Chrome Console Error - not during gulp / babel build)

Error ReferenceError: regeneratorRuntime is not defined (Chrome Console Error - not during gulp / babel build)

我有一个奇怪的问题,希望能得到一些帮助。

我有一个 WordPress 主题,我一直在使用包括 gulp & babel 在内的开发设置进行开发。我有一个具有开发环境和生产环境的托管服务提供商。到目前为止,我在构建主题、将其上传到开发环境并进行测试时没有遇到任何问题 - 一切都非常顺利。

现在我试图将相同的主题(我说的完全一样)上传到生产站点,而不是开发站点,我在控制台中收到以下错误:

Error retrieving XXX:  ReferenceError: regeneratorRuntime is not defined
    at bundle.js?ver=1.0.0:726
    at S (bundle.js?ver=1.0.0:726)
    at window.initMap (bundle.js?ver=1.0.0:726)
    .....

我搜索的所有内容都表明人们在尝试构建或 运行 他们的开发环境时遇到了这个问题,这与他们的 gulp 或 babel 有关安装程序,或他们正在使用的包。所以,我将在下面添加我的配置...虽然我很困惑为什么主题构建和 运行s 在一个环境中没有错误,但在另一个环境中却因这个错误而倒下。

gulpfile.babel.js

// Gulp.js configuration
'use strict';

import "regenerator-runtime/runtime.js";
import "core-js/stable";

const

  // Gulp and plugins
  { src,
    dest, 
    watch, 
    series, 
    parallel 
  }             = require('gulp'),
  imagemin      = require('gulp-imagemin'),
  autoprefixer  = require('autoprefixer'),
  cssnano       = require('cssnano'),
  sass          = require('gulp-sass'),
  sourcemaps    = require('gulp-sourcemaps'),
  postcss       = require('gulp-postcss'),
  gulpif        = require('gulp-if'),
  cleanCss      = require('gulp-clean-css'),
  yargs         = require('yargs'),
  del           = require('del'),
  webpack       = require('webpack-stream')
 
[...]

// Task to build js file as bundle.js
export const scripts = () => {
  return src([
    js.src + 'map.js',
    js.src + 'bundle.js'
  ])
  .pipe(webpack({
    module: {
      rules: [
        {
          test: /\.js$/,
          use: {
            loader: 'babel-loader',
            options: {
              presets: ['@babel/preset-env'],
            }
          }
        }
      ]
    },
    optimization:{
      namedChunks: true,
      minimize: true, 
      splitChunks: {
        cacheGroups: {
          commons: {
            test: /[\/]node_modules[\/]/,
            name: 'vendors',
            chunks: 'async'
          },
        }
      }
    },
    mode: PRODUCTION ? 'production' : 'development',
    devtool: !PRODUCTION ? 'inline-source-map' : false,
    output: {
      filename: js.filename
    },
  }))
  .pipe(dest(js.build))
}

[...]

.babelrc

{
    "presets": [
        [
            "@babel/preset-env",
            {
                "targets": "> 0.25%, not dead",
                "useBuiltIns": "usage",
                "corejs": 3
            }
        ]
    ],
    "plugins": ["@babel/plugin-transform-runtime"]
}

我尝试更新 package.json 以使用 @babel/runtime 作为依赖项,以及 regenerator-运行time,我认为这不会做任何事情 - 但它没有't.

package.json

"browserslist": [
        "last 3 and_chr versions",
        "last 3 chrome versions",
        "last 3 opera versions",
        "last 3 ios_saf versions",
        "last 3 safari versions"
    ],
    "devDependencies": {
        "@babel/core": "^7.10.5",
        "@babel/plugin-transform-runtime": "^7.10.5",
        "@babel/preset-env": "^7.10.4",
        "@babel/register": "^7.10.5",
        "autoprefixer": "^9.8.5",
        "babel-eslint": "^10.1.0",
        "babel-loader": "^8.1.0",
        "browser-sync": "^2.26.7",
        "core-js": "^3.6.5",
        "cssnano": "^4.1.10",
        "del": "^5.1.0",
        "eslint": "^6.8.0",
        "gulp": "^4.0.2",
        "gulp-autoprefixer": "^7.0.1",
        "gulp-babel": "^8.0.0",
        "gulp-clean-css": "^4.3.0",
        "gulp-concat": "^2.6.1",
        "gulp-if": "^3.0.0",
        "gulp-imagemin": "^7.1.0",
        "gulp-notify": "^3.2.0",
        "gulp-postcss": "^8.0.0",
        "gulp-sass": "^4.1.0",
        "gulp-sourcemaps": "^2.6.5",
        "scss": "^0.2.4",
        "vinyl-named": "^1.1.0",
        "webpack-stream": "^5.2.1",
        "yargs": "^15.4.1"
    },
    "dependencies": {
        "@babel/runtime": "^7.10.5",
        "moment": "^2.27.0",
        "regenerator-runtime": "^0.13.5",
        "snazzy-info-window": "^1.1.1"
    }

引发错误的特定代码片段在我的 map.js 中(从 wp-rest api 中提取自定义帖子,并将它们填充到 google 地图上) , 并且低于:

import 'regenerator-runtime/runtime'; // top of file

[...]

const getXXX = () => {
    try{
      async function fetchXXX() {
        const res = await fetch(url);

        if(!res.ok){
          console.log('Error retrieving XXX:', res.status);
          throw new Error(res.status);
        }
        const data = await res.json();
        return data;
      }

      fetchXXX()
      .then(data => {
        xxx = data;
        renderXXX();
      })
      .catch(error => {
        console.log('Error retriving XXX: ', error);
      });
    } catch (err) {
      console.log('Error retrieving XXX: ', err);
    } 
  }

如果有人有任何指点,将不胜感激。

对于将来偶然发现此问题的任何人(可能不太可能)。

原来罪魁祸首是我们生产环境中使用的 CDN。我发现我上传的 bundle.js 文件与网站上提供的文件不一样,于是关闭了 CDN,这似乎解决了这个问题。 :/