【问题标题】:Can't get ESM to work with Knex CLI v0.21.5无法让 ESM 与 Knex CLI v0.21.5 一起使用
【发布时间】:2020-09-06 05:50:16
【问题描述】:

运行时:

npx knex migrate:latest

我收到此错误:

/home/raj/.npm/_npx/8138/lib/node_modules/knex/lib/util/import-file.js 中的 .npm 目录是什么?是可以删除的缓存吗?

我将 Knex 更新为 0.21.5,因此它可以与在我的 package.json 中为 ESM 语法设置的 "type":"module" 一起使用,但我仍然收到此投诉。我的 node.js 项目使用 import 语句,而不是 require() 调用,因此对导致此问题的原因感到困惑。此外,Knex 的命令行工具也更新到最新:

可能它仍然与 Knex 的命令行工具有关吗?一些nvmnpx 缓存?还是别的什么?

【问题讨论】:

    标签: javascript knex.js es6-modules nvm npx


    【解决方案1】:

    这是因为要使 ESM 工作,该命令需要使用 --esm 参数运行:

    npx knex --esm migrate:latest
    

    【讨论】:

      【解决方案2】:

      我的项目在package.json 中定义为"type": "module" 因此我将knexfile.js重命名为knexfile.cjs

      这是完整的命令

      npx knex --esm --knexfile knexfile.cjs migrate:make my_migration
      

      这将产生一个迁移文件my_migration.cjs

      【讨论】:

        猜你喜欢
        • 2021-06-16
        • 2020-10-01
        • 1970-01-01
        • 2014-10-31
        • 2018-01-02
        • 2016-11-14
        • 2015-02-01
        • 2019-05-10
        • 2017-11-20
        相关资源
        最近更新 更多