首页 > 解决方案 > Babel 7:regeneratorRuntime 未定义错误

问题描述

我有一个在后端有节点 js 的应用程序。在开发方面它工作正常。但是在带有构建/编译代码的产品中,我收到了这个错误 ReferenceError: regeneratorRuntime is not defined

我已经尝试过这个解决方案,但它对我不起作用

babel.config.json

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "current"
        }
      }
    ]
  ],
  "plugins": ["@babel/plugin-proposal-object-rest-spread", "@babel/plugin-transform-runtime"]
}

调用db连接文件的入口文件server.js

import "core-js/stable"
import "regenerator-runtime/runtime"
require("dotenv").config()
import db from "./db"

const init = async () => {
  try {
    await db()
  } catch (err) {
    throw new Error(err)
  }

  const opts = {
    port: process.env.PORT || 4000,
    cors: {
      origin: process.env.FRONTENDURL,
      credentials: true
    }
  }

  const server = require("./graphql/index")

  server.start(opts, t => {
    console.log(`server is up ${opts.port}`)
  })
}

init()

产生错误的 db 文件

const mongodb = require("mongodb")

export default () => {
  return new Promise((resolve, reject) => {
    mongodb.connect(process.env.CONNECTIONSTRING, { useNewUrlParser: true, useUnifiedTopology: true }, function (err, client) {
      if (err) {
        return reject(err)
      }
      module.exports = client
      return resolve()
    })
  })
}

也是 packagejson 中的构建脚本

"scripts": {
    "build": "babel src --out-dir dist --copy-files",
  },

标签: node.jsbabeljs

解决方案


推荐阅读