gpt4 book ai didi

node.js - 在 Node 14 中使用类型为 : module 的 sequelize-cli

转载 作者:行者123 更新时间:2023-12-03 22:15:09 27 4
gpt4 key购买 nike

我正在尝试使用 Node v14.3 设置项目和 sequelize .

我不想使用 babel-register .而不是这个我设置"type": "module"在我的package.json并开箱即用地使用所有 ES6 - ES11 功能。

我也想用sequelize-cli用于设置和应用迁移。除以下命令外,一切正常:

& sequelize db:migrate

Sequelize CLI [Node: 14.3.0, CLI: 5.5.1, ORM: 5.21.11]

Loaded configuration file "config/config.json".
Using environment "development".
== 20200530214311-create-user: migrating =======

ERROR: Must use import to load ES Module: /home/kasheftin/work/tests/chai-http-publication/migrations/20200530214311-create-user.js
require() of ES modules is not supported.
require() of /home/kasheftin/work/tests/chai-http-publication/migrations/20200530214311-create-user.js from /home/kasheftin/.nvm/versions/node/v14.3.0/lib/node_modules/sequelize-cli/node_modules/umzug/lib/migration.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename 20200530214311-create-user.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /home/kasheftin/work/tests/chai-http-publication/package.json.

我们在引擎盖下看到了 sequelize-cli使用 require() . ES 模块不允许这样做。它提出了 3 种方法来解决这个问题:
  • 将 20200530214311-create-user.js 重命名为以 .cjs 结尾 - 无法完成,sequelize-cli 找不到以 .cjs 结尾的迁移。
  • 更改要求代码以使用 import() - 我不想接触 sequelize-cli 代码。
  • 删除“类型”:“模块” - 我不能因为一切都停止工作。

  • 有没有其他方法可以制作 sequelize-cli工作?我大量使用测试,我希望在运行测试之前自动准备测试数据库。

    最佳答案

    一个解决方案是添加一个 package.json在您的迁移文件夹中覆盖 type: "module"从你的主 package.json
    这个 package.json 看起来像这样:

    {
    "type": "commonjs"
    }
    并且您的迁移文件必须如下所示:
    module.exports = {
    up: async (queryInterface, Sequelize) => {

    },

    down: async (queryInterface, Sequelize) => {

    }
    };
    它适用于 nodeJS 14.16.1 & Sequelize 6.6.2 & Sequelize -cli 6.2.0

    关于node.js - 在 Node 14 中使用类型为 : module 的 sequelize-cli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62121277/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com