Sequelize TypeScript项目执行Seeders遇import语法错误求助
Sequelize TypeScript项目Seeders执行报错求助
我在Sequelize TypeScript项目中执行数据填充(seeders)操作时遇到语法错误,相关配置与执行细节如下:
.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;
执行命令
我使用npm run apply-seeders命令执行seeders,该命令对应的实际脚本为:
rm -rf dist && npm run build && node -r dotenv-flow/config ./node_modules/.bin/sequelize db:seed:all --debug
报错信息
执行后立即抛出以下错误:
/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)
我清楚这个错误是因为Node默认使用CommonJS模块规范,仅识别require和module.exports,无法处理import/export语法导致的。下面附上项目的tsconfig.json和.babelrc配置文件,希望能找到解决方法,让Sequelize可以识别所有文件中的import/export语句。
tsconfig.json 配置
{ "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 配置
{ "presets": [ [ "@babel/preset-env", { "targets": { "node": "current" } } ] ], "plugins": [ [ "module-resolver", { "root": [ "./src" ], "alias": { "utils": "./src/server/utils" } } ] ] }
内容的提问来源于stack exchange,提问作者PirateApp
相关产品推荐
相关产品推荐

