You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用TS与ESM模块时Knex migrate:make命令执行失败

Knex + TypeScript 执行migrate命令报错

使用knex init -x ts搭建基于TypeScript的Knex项目后,执行knex migrate:make test命令时出现如下错误:

Unknown file extension ".ts" for C:\Dev\js\knex-ts\knexfile.ts
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for C:\Dev\js\knex-ts\knexfile.ts
    at new NodeError (node:internal/errors:405:5)
    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:79:11)
    at defaultGetFormat (node:internal/modules/esm/get_format:124:36)
    at defaultLoad (node:internal/modules/esm/load:89:20)
    at nextLoad (node:internal/modules/esm/loader:163:28)
    at load$1 (file:///C:/Dev/js/knex-ts/.pnp.loader.mjs:1456:12)
    at nextLoad (node:internal/modules/esm/loader:163:28)
    at ESMLoader.load (node:internal/modules/esm/loader:603:26)
    at ESMLoader.moduleProvider (node:internal/modules/esm/loader:457:22)
    at new ModuleJob (node:internal/modules/esm/module_job:64:26)

极简复现项目配置

knexfile.ts

import type { Knex } from "knex";

const config: { [key: string]: Knex.Config } = {
  development: {
    client: "pg",
  }
};
export default config

package.json

{
  "name": "knex-ts",
  "type": "module",
  "scripts": {
    "knex": "knex"
  },
  "dependencies": {
    "knex": "^3.0.1",
    "pg": "^8.11.3",
    "ts-node": "^10.9.1",
    "typescript": "^5.2.2"
  },
  "devDependencies": {
    "@types/node": "^20.9.0"
  },
  "packageManager": "yarn@3.6.3"
}

tsconfig.json

{
  "compilerOptions": {
    "module": "ESNext",
    "target": "ESNext",
  },
  "include": ["**/*.ts", "**/*.tsx"],
  "exclude": ["node_modules"]
}

已尝试的无效方案

  • 在tsconfig的compilerOptions或ts-node配置项下添加"esm": true,无效果
  • 移除package.json中的"type": "module"后,系统要求添加"moduleResolution": "nodenext",但仍出现语法错误:Unexpected token "export"

内容的提问来源于stack exchange,提问作者E Purwanto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:09:56