【发布时间】:2020-10-19 19:29:07
【问题描述】:
我有这个 .sequelizerc 文件:
const path = require('path');
module.exports = {
config: path.resolve('.', 'src/config/sequelizeCLIConfig.json'),
'migrations-path': path.resolve('.', 'db', 'migrations'),
};
然后我有一个 .ts 文件,它生成名为 generateSequelizeCLIConfig.ts 的 cli 配置文件,它执行以下操作:
import path from 'path';
import fs from 'fs';
import config from '../../src/config';
import sequelizeRC from '../../.sequelizerc';
const env = process.env.NODE_ENV || 'development';
const targetFile = path.resolve(sequelizeRC.config);
const sequelizeCLIConfig: Record<string, any> = {};
sequelizeCLIConfig[env] = config.db;
fs.writeFile(targetFile, JSON.stringify(sequelizeCLIConfig, null, 4), err => {
if (err) {
return console.log(err);
}
console.log('The sequelizeCLI config file was saved at ' + targetFile + '!');
});
计划是,每次我需要迁移时,我都会先运行这个脚本。此脚本从 config 文件夹中获取数据并生成 src/config/sequelizeCLIConfig.json。然后我使用此 .json 文件中的配置数据运行迁移。
所以文件结构是这样的:
-.sequelizerc
-db
|-scripts
|-generateSequelizeCLIConfig.ts
-src
|-config
|-index.ts
.sequelizerc
但是我在编译generateSequelizeCLIConfig.ts时遇到了这个错误:
TSError: ⨯ Unable to compile TypeScript:
db/scripts/generateSequelizeCLIConfig.ts(4,25): error TS2307: Cannot find module '../../.sequelizerc'.
虽然我已经仔细检查过该文件确实存在,但似乎无法识别 .sequrlizerc。
我的猜测是,幕后的 .sequelizerc 是一个 .js 文件,而不是 .ts 文件,这给我带来了一些麻烦。但我不知道如何验证这一点,也不知道如何解决它。
有什么建议吗?
【问题讨论】:
标签: node.js typescript sequelize.js sequelize-cli sequelize-typescript