2

I am trying to run seeders on my sequelize typescript project

.sequelizerc

import '@babel/register';

import path from 'path';

const settings = {
  config: path.resolve('src', 'config', 'index.js'),
  'migrations-path': path.resolve('src', 'data', 'migrations'),
  'models-path': path.resolve('src', 'data', 'models'),
  'seeders-path': path.resolve('src', 'data', 'seeders'),
};

export default settings;

When I run this command npm run apply-seeders which translates to

rm -rf dist && npm run build && node -r dotenv-flow/config ./node_modules/.bin/sequelize db:seed:all --debug

I immediately get an error

/Users/vr/Desktop/code/vr/api/.sequelizerc:1
import '@babel/register';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1055:15)
    at Module._compile (node:internal/modules/cjs/loader:1090:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
    at Module.load (node:internal/modules/cjs/loader:1004:32)
    at Function.Module._load (node:internal/modules/cjs/loader:839:12)
    at Module.require (node:internal/modules/cjs/loader:1028:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at loadRCFile (/Users/vr/Desktop/code/vr/api/node_modules/sequelize-cli/lib/core/yargs.js:25:77)
    at Object.<anonymous> (/Users/vr/Desktop/code/vr/api/node_modules/sequelize-cli/lib/core/yargs.js:28:63)

I understand this is an error involving the import export statements since it only understands require and module.exports

How do I fix this?

This is my tsconfig.json file if it helps

{
  "compilerOptions": {
    "lib": ["es2020"],
    "module": "commonjs",
    "moduleResolution": "node",
    "target": "es2020",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "noImplicitAny": false,
    "outDir": "dist",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "baseUrl": ".",
    "paths": {
      "server/*": ["src/server/*"],
      "tests/*": ["src/tests/*"],
      "data/*": ["src/data/*"],
      "config": ["src/config"],
    }
  }
}

.babelrc file

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "current"
        }
      }
    ]
  ],
  "plugins": [
    [
      "module-resolver",
      {
        "root": [
          "./src"
        ],
        "alias": {
          "utils": "./src/server/utils"
        }
      }
    ]
  ]
}

Can someone kindly suggest how I can get sequelize to detect import export statements everywhere?

PirateApp
  • 5,433
  • 4
  • 57
  • 90

0 Answers0