如何配置 Sequelize 和 Sequelize-CLI 以与 TypeScript 配合使用
我有一个项目需要使用sequelize和typescript来维护,我尽可能努力地配置它们,但我做不到。我无法使用cli生成模型,有时在网上找到一些配置后cli会生成js文件,或者有时会生成ts文件但无法迁移。
注意:当我使用sequelize和javascript工作时一切正常,但为此我必须使用typescript。
我需要解释如何从头开始配置sequelize和typescript,或者配置代码(如果可能的话)。
我什至使用了sequelize-typescript、sequelize-cli-typescript依赖项,但无法配置应用程序来创建模型或使用sequelize迁移数据库。
我也遇到同样的问题并解决了。
因为您想在基于打字稿的项目上运行它。 Sequelize-cli 似乎默认不支持 typescript,并导致出现无法理解带有
.ts
扩展名的文件的错误消息。
我会认为您还在项目中配置了打字稿。
为了能够从打字稿文件加载配置,我们需要使用 JavaScript 文件。为此,请在项目的根目录中创建一个名为
sequelize.config.js
的文件,其中包含以下内容:
require('ts-node/register');
const config = require('./config/database.ts'); // Change the path to your config file
// for debug purposes
console.log({config})
module.exports = config;
此文件使用 ts-node/register 来启用 Sequelize CLI 的 TypeScript 支持。
现在在
.sequelizerc
文件中更正配置的路径,对我来说它看起来像这样。
const path = require('path');
module.exports = {
config: path.resolve('sequelize.config.js'),
'models-path': path.resolve('db', 'models'),
'seeders-path': path.resolve('db', 'seeders'),
'migrations-path': path.resolve('db', 'migrations'),
};
无需将sequelize-cli 与TypeScript 一起使用。只要使用 JavaScript 就可以了。要使用 Sequelize 使用 TypeScript,我建议阅读文档:https://sequelize.org/docs/v6/other-topics/typescript/