Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用异步导致:错误[ERR\u REQUIRE\u ESM]:必须使用导入加载ES模块asyncToGenerator.js_Javascript_Node.js_Ecmascript 6_Babeljs - Fatal编程技术网

Javascript 使用异步导致:错误[ERR\u REQUIRE\u ESM]:必须使用导入加载ES模块asyncToGenerator.js

Javascript 使用异步导致:错误[ERR\u REQUIRE\u ESM]:必须使用导入加载ES模块asyncToGenerator.js,javascript,node.js,ecmascript-6,babeljs,Javascript,Node.js,Ecmascript 6,Babeljs,我在babel和node js中遇到了一个“async”问题,好几天都无法解决。。。错误如下: Error[ERR\u REQUIRE\u ESM]:必须使用导入加载ES模块:C:\BOOSTACKSTICK\BOOSTACK\node\u modules\@babel\runtime\helpers\ESM\asyncToGenerator.js不支持ES模块的[1]REQUIRE()。[1] C:\BOOSTACKSTICK\BOOSTACK\node\u modules\@babel\ru

我在babel和node js中遇到了一个“async”问题,好几天都无法解决。。。错误如下:

Error[ERR\u REQUIRE\u ESM]:必须使用导入加载ES模块:C:\BOOSTACKSTICK\BOOSTACK\node\u modules\@babel\runtime\helpers\ESM\asyncToGenerator.js不支持ES模块的[1]REQUIRE()。[1] C:\BOOSTACKSTICK\BOOSTACK\node\u modules\@babel\runtime\helpers\esm\asynchtogenerator.js中的C:\BOOSTACKSTICK\BOOSTACK\prod server\api\auth\auth-controller.js的require()是一个ES模块文件,因为它是一个.js文件,其最近的父包.json包含“type”:“module”,它将该包范围内的所有.js文件定义为ES模块。[1] 将asyncToGenerator.js重命名为.cjs,将所需代码更改为使用import(),或从C:\BOOSTACKSTICK\BOOSTACK\node\u modules\@babel\runtime\helpers\esm\package.json中删除“type”:“module”。

我使用下面的config命令将我的dev server文件夹编译成prod服务器 package.json

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "babel dev-server --out-dir prod-server && vue-cli-service build",
    "lint": "vue-cli-service lint",
    "dev": "concurrently \"babel dev-server --out-dir prod-server --watch\" \"nodemon prod-server/index.js\" \"npm run serve\" "
  },
"devDependencies": {
    "@babel/cli": "^7.12.1",
    "@babel/core": "^7.12.3",
    "@babel/node": "^7.12.1",
    "@babel/plugin-transform-async-to-generator": "^7.12.1",
    "@babel/plugin-transform-runtime": "^7.12.1",
    "@babel/preset-env": "^7.12.1",
    "@babel/runtime-corejs3": "^7.12.1",
    "@vue/cli-plugin-babel": "^4.5.8",
    "@vue/cli-plugin-eslint": "^4.5.8",
    "@vue/cli-service": "^4.5.8",
    "babel-eslint": "^10.1.0",
    "compass-mixins": "^0.12.10",
    "concurrently": "^5.3.0",
    "core-js": "^3.6.5",
    "css-loader": "^3.6.0",
    "eslint": "^5.16.0",
  },
.babelrc

  "presets": [
    [
      "@babel/preset-env",
      {
        "useBuiltIns": "usage", // or "entry"
        "corejs": 3,
        "targets": {
          "node": "current"
        }
      }
    ]
  ],
  "plugins": [
    [
      "@babel/plugin-transform-runtime",
      {
        "corejs": 3
      }
    ],
    ["@babel/plugin-proposal-class-properties"]
  ]
}
环境

Node: v12.16.3
Babel: 7.12.3
**导致问题的带有“async”的简单代码**

export async function index(req, res) {
  return res.status(200).json({ user: "user" });
}
**巴别塔输出**

"use strict";

var _interopRequireDefault = require("C:/BOOSTACKSTICK/BOOSTACK/node_modules/@babel/runtime/helpers/interopRequireDefault");

var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.index = index;

var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));

require("regenerator-runtime/runtime");

var _asyncToGenerator2 = _interopRequireDefault(require("C:/BOOSTACKSTICK/BOOSTACK/node_modules/@babel/runtime/helpers/esm/asyncToGenerator"));

//Check And Validate Request (LOGIN METHODE)
function index(_x, _x2) {
  return _index.apply(this, arguments);
}

function _index() {
  _index = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(req, res) {
    return _regenerator.default.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            return _context.abrupt("return", res.status(200).json({
              user: "user"
            }));

          case 1:
          case "end":
            return _context.stop();
        }
      }
    }, _callee);
  }));
  return _index.apply(this, arguments);
}
可能的解决方案 为避免此错误,我测试的唯一解决方法是手动修改
node\u modules\@babel\runtime\helpers\esm\package.json
以删除
“type”:module
并从
node\u modules\@babel\runtime\helpers\esm\asyncToGenerator.js

是虫子还是我做错了什么


提前感谢您的回复。

我对@babel/runtime/helpers/esm/arrayWithoutHoles有相同的问题bug。js@MirzaAndriamanamisoa这是我从巴贝尔团队得到的回应:在我这边,经过长时间的思考,我意识到我真的不需要它(巴贝尔)。。。因此,我删除了itI与@babel/runtime/helpers/esm/arrayWithoutHoles的相同问题bug。js@MirzaAndriamanamisoa这是我从巴贝尔团队得到的回应:在我这边,经过长时间的思考,我意识到我真的不需要它(巴贝尔)。。。所以我把它去掉了