node.js - Erhalte `TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unbekannte Dateierweiterung ".ts"` in `ts-node`, wenn der Typ auf Modul gesetzt ist
Ich habe den absoluten Pfad in meinem Express-Projekt konfiguriert und dann den Typ auf Modul geändert, da ich import verwende, aber das gibt mir den Fehler TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unbekannte Dateierweiterung ".ts"
Hier ist meine tsconfig.json
{
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "bundler",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true,
"outDir": "./dist",
"sourceMap": true,
"incremental": true,
"baseUrl": ".",
"paths": {
"@routes/*": ["./src/routes/*"],
},
},
"include": ["src/**/*"],
"ts-node": {
"swc": true,
"esm": true,
"experimentalSpecifierResolution": "node"
},
"exclude": ["node_modules"]
}
hier ist mein package.json
{
...
"version": "1.0.0",
"description": "",
"main": "./src/index.ts",
"type": "module",
"scripts": {
"build": "npx tsc",
"start": "node ./dist/index.js",
"dev": "nodemon --watch './src/**/*.ts' --exec 'ts-node --swc --esm' ./src/index.ts",
"prettier": "prettier --write .",
"prepare": "husky install"
},
"lint-staged": {
"**/*": "prettier --write --ignore-unknown"
},
...
}
Ich habe versucht, das --esm-Flag mit ts-node zu verwenden, aber das Problem bleibt bestehen. Was ich möchte, ist, dass die absoluten Importe funktionieren, aber wenn ich ts-node entferne und concurrently \"npx tsc --watch\" \"nodemon -q ./dist/index.js\" benutze, funktionieren die absoluten Importe nicht. Ich stecke irgendwie in einer Schleife fest.
Antwort #1
Führe es mit aus
node --require ts-node/register --loader ts-node/esm
