TypeORM migration generation fails with MODULE_NOT_FOUND './cli' when using ts-node
I’m trying to generate a TypeORM database migration using a Node.js script. I’m using ts-node and my own tsconfig.app.json.
When I run the script, I get the following error:
Error: Cannot find module './cli'
Require stack:
- C:\Users\User\Documents\shop\apps\service\src\node_modules\typeorm\imaginaryUncacheableRequireResolveScript
at Module._resolveFilename (node:internal/modules/cjs/loader:1421:15)
at require.resolve (node:internal/modules/helpers:163:19)
at requireResolveNonCached (C:\Users\User\AppData\Local\pnpm\global\5\.pnpm\ts-node@10.9.2_@types+node@25.3.3_typescript@5.9.3\node_modules\ts-node\dist\bin.js:549:16)
at getProjectSearchDir (C:\Users\User\AppData\Local\pnpm\global\5\.pnpm\ts-node@10.9.2_@types+node@25.3.3_typescript@5.9.3\node_modules\ts-node\dist\bin.js:519:40)
at phase3 (C:\Users\User\AppData\Local\pnpm\global\5\.pnpm\ts-node@10.9.2_@types+node@25.3.3_typescript@5.9.3\node_modules\ts-node\dist\bin.js:267:27)
at bootstrap (C:\Users\User\AppData\Local\pnpm\global\5\.pnpm\ts-node@10.9.2_@types+node@25.3.3_typescript@5.9.3\node_modules\ts-node\dist\bin.js:47:30)
at main (C:\Users\User\AppData\Local\pnpm\global\5\.pnpm\ts-node@10.9.2_@types+node@25.3.3_typescript@5.9.3\node_modules\ts-node\dist\bin.js:33:12)
at Object. (C:\Users\User\AppData\Local\pnpm\global\5\.pnpm\ts-node@10.9.2_@types+node@25.3.3_typescript@5.9.3\node_modules\ts-node\dist\bin.js:579:5)
at Module._compile (node:internal/modules/cjs/loader:1761:14)
at Object..js (node:internal/modules/cjs/loader:1893:10) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\\Users\\User\\Documents\\shop\\apps\\service\\src\\node_modules\\typeorm\\imaginaryUncacheableRequireResolveScript'
]
}
Node.js v24.13.0
Error: Command failed: ts-node -r tsconfig-paths/register --project tsconfig.app.json ../../node_modules/typeorm/cli migration:generate src/app/database/migrations/test --pretty -d src/app/database/data-source.ts
at genericNodeError (node:internal/errors:985:15)
at wrappedFn (node:internal/errors:539:14)
at checkExecSyncError (node:child_process:925:11)
at execSync (node:child_process:997:15)
at C:\Users\User\Documents\shop\apps\service\src\app\database\generate-migration.ts:16:5
at Interface.[_onLine] [as _onLine] (node:internal/readline/interface:463:7)
at Interface.[_line] [as _line] (node:internal/readline/interface:953:18)
at Interface.[_ttyWrite] [as _ttyWrite] (node:internal/readline/interface:1469:22)
at ReadStream.onkeypress (node:internal/readline/interface:284:20)
at ReadStream.emit (node:events:508:28) {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 27428,
stdout: null,
stderr: null
}
The command that fails in the script is:
ts-node .\generate-migration.ts
My Setup:
Nodejs 11.6.2
pnpm 10.28.2
Migration Generation Script:
import { execSync } from 'child_process';
const name = 'test';
execSync(
`ts-node -r tsconfig-paths/register --project tsconfig.app.json ` +
`../../node_modules/typeorm/cli migration:generate ` +
`src/app/database/migrations/${name} --pretty -d src/app/database/data-source.ts`,
{ stdio: 'inherit' }
);
Problem
TypeScript / Node.js throws: Cannot find module './cli'