Node.js Sequelize无法与@babel/register一起使用

Node.js Sequelize无法与@babel/register一起使用,node.js,express,sequelize.js,babeljs,es6-modules,Node.js,Express,Sequelize.js,Babeljs,Es6 Modules,我试图在sequelize迁移中使用import-export语句,在其他问题和github问题中尝试了所有的方法。以下是我用来使它工作的文件 .后遗症 require('@babel/register'); require('@babel/polyfill'); const path = require('path'); module.exports = { 'config': path.resolve('config', 'config.json'), 'models-path':

我试图在sequelize迁移中使用import-export语句,在其他问题和github问题中尝试了所有的方法。以下是我用来使它工作的文件

.后遗症

require('@babel/register');
require('@babel/polyfill');
const path = require('path');

module.exports = {
  'config': path.resolve('config', 'config.json'),
  'models-path': path.resolve('models'),
  'seeders-path': path.resolve('seeders'),
  'migrations-path': path.resolve('migrations')
}
package.json

{
  "name": "sideproject3",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "nodemon --exec babel-node --experimental-specifier-resolution=node ./bin/www.js",
    "start": "node --experimental-specifier-resolution=node ./bin/www.js",
    "lint": "eslint --ignore-path .gitignore  \"**/*.js\"",
    "lint-fix": "eslint --ignore-path .gitignore --fix \"**/*.js\""
  },
  "dependencies": {
    "cookie-parser": "~1.4.4",
    "debug": "~2.6.9",
    "dotenv": "^8.2.0",
    "express": "~4.16.1",
    "express-jwt": "^6.0.0",
    "http-errors": "~1.6.3",
    "jade": "~1.11.0",
    "jsonwebtoken": "^8.5.1",
    "morgan": "~1.9.1",
    "mysql2": "^2.2.5",
    "sequelize": "^6.6.2"
  },
  "devDependencies": {
    "@babel/cli": "^7.13.16",
    "@babel/core": "^7.13.16",
    "@babel/node": "^7.13.13",
    "@babel/polyfill": "^7.12.1",
    "@babel/preset-env": "^7.13.15",
    "@babel/register": "^7.13.16",
    "eslint": "^7.25.0",
    "eslint-config-google": "^0.14.0",
    "nodemon": "^2.0.7",
    "sequelize-cli": "^6.2.0"
  }
}
B.法律改革委员会

{
  "presets": [
    [
      "@babel/preset-env"
    ]
  ]
}
migration.js

'use strict';
import { TABLE_NAMES, REQUEST_STATUS } from '../constants';

module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.createTable('Requests', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER,
      },
      message: {
        type: Sequelize.TEXT,
      },
      status: {
        type: Sequelize.ENUM([Object.values(REQUEST_STATUS)]),
      },
      requested_time: {
        type: Sequelize.DATE,
      },
      requested_by_id: {
        type: Sequelize.INTEGER,
        references: {
          model: TABLE_NAMES.USERS,
          key: 'id',
        },
      },
      requested_to_id: {
        type: Sequelize.INTEGER,
        references: {
          model: TABLE_NAMES.USERS,
          key: 'id',
        },
      },
      reject_response: {
        type: Sequelize.TEXT,
      },
      response_time: {
        type: Sequelize.DATE,
        allowNull: true,
      },
      type: {
        type: Sequelize.STRING,
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE,
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE,
      },
    });
  },
  down: async (queryInterface, Sequelize) => {
    await queryInterface.dropTable('Requests');
  },
};
其他人的解决方案告诉我们,使用@babel/register和使用preset env应该是有效的,但它不起作用,并给出以下错误

错误[ERR\U REQUIRE\U ESM]:必须使用导入加载ES模块:

。。。ES模块的require()不受支持


不是巴别塔专家,但预设不应该是一个简单的数组,而不是一个嵌套在另一个数组中的数组吗?@ChristianFritz不会有什么区别,也尝试了同样的错误