ts-node
ts-node copied to clipboard
ERR_MODULE_NOT_FOUND when excluding .ts from imports
Search Terms
ERR_MODULE_NOT_FOUND
Expected Behavior
I am expecting ts-node to successfully compile and run. I also compile with tsc and then run the compiled code and it works fine, this is what is confusing me. why is it working with tsc and not ts-node? they use the same tsconfig so it shouldn't have a difference.
Actual Behavior
I get the following error:
C:\Users\Pietro\Documents\projects\bulletproof-backand\src>ts-node server.ts
C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\dist-raw\node-internal-modules-esm-resolve.js:366
throw new ERR_MODULE_NOT_FOUND(
^
CustomError: Cannot find module 'C:\Users\Pietro\Documents\projects\bulletproof-backand\src\sources\api\routes\routes' imported from C:\Users\Pietro\Documents\projects\bulletproof-backand\src\server.ts
at finalizeResolution (C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\dist-raw\node-internal-modules-esm-resolve.js:366:11)
at moduleResolve (C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\dist-raw\node-internal-modules-esm-resolve.js:801:10)
at Object.defaultResolve (C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\dist-raw\node-internal-modules-esm-resolve.js:912:11)
at C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\src\esm.ts:218:35
at entrypointFallback (C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\src\esm.ts:168:34)
at C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\src\esm.ts:217:14
at addShortCircuitFlag (C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\src\esm.ts:409:21)
at resolve (C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\src\esm.ts:197:12)
at resolve (C:\Users\Pietro\AppData\Roaming\npm\node_modules\ts-node\src\child\child-loader.ts:15:39)
at ESMLoader.resolve (node:internal/modules/esm/loader:530:30)
Steps to reproduce the problem
Minimal reproduction
Specifications
- ts-node version: v10.9.1
- node version: v16.14.2
- TypeScript version: 4.9.3
- tsconfig.json, if you're using one:
{
"compilerOptions": {
"module": "es2022",
"target": "es2022",
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"noEmit": true,
"baseUrl": "./",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"isolatedModules": true,
"outDir": "./dist",
"forceConsistentCasingInFileNames": true,
"strict": true,
"paths": {
"*": ["./node_modules/*"],
"@base/*": ["./src/*"],
"@libs/*": ["./src/libs/*"]
}
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", ".vscode"],
"ts-node": {
"esm": true,
"require": ["tsconfig-paths/register"]
}
}
- package.json:
{
"name": "bulletproof-backand",
"type": "module",
"version": "1.0.0",
"license": "MIT",
"scripts": {
"build": "tsc",
"start": "node dist/server.js",
"dev": "nodemon",
"databases:up": "docker-compose -f ./docker/test-databases/docker-compose.yml build && docker-compose -f ./docker/test-databases/docker-compose.yml up -d",
"databases:down": "docker-compose -f ./docker/test-databases/docker-compose.yml down",
"test": "npx jest",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write ."
},
"devDependencies": {
"@types/babel__generator": "^7.6.4",
"@types/express": "^4.17.17",
"@types/jest": "^29.5.3",
"@types/node": "^20.4.2",
"eslint": "^8.45.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-prettier": "^5.0.0",
"jest": "^29.6.1",
"nodemon": "^3.0.1",
"prettier": "^3.0.0",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.1.6"
},
"dependencies": {
"dotenv": "^16.3.1",
"express": "^4.18.2",
"express-async-errors": "^3.1.1",
"express-validator": "^7.0.1",
"mysql2": "^3.5.2",
"pg": "^8.11.1",
"sequelize": "^6.32.1",
"ts-transformer-keys": "^0.4.4"
}
}
- Operating system and version: 10.0.19044 Build 19044
- If Windows, are you using WSL or WSL2?: NO
Hey👋 @pietro99, I would recommend you use this command
npm run ts-node -- filename.ts