node.js - TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Okänd filändelse ".ts" med mocha
Jag har läst alla liknande frågor och ts-node-dokumentationen. Jag har provat allt men inget fungerar
Jag har TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Okänd filändelse ".ts" för /Documents/WebStorm/new-api-test/tests/pet.spec.ts skärmdump
at new NodeError (node:internal/errors:372:5)
at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:76:11)
at defaultGetFormat (node:internal/modules/esm/get_format:118:38)
at defaultLoad (node:internal/modules/esm/load:21:20)
at ESMLoader.load (node:internal/modules/esm/loader:407:26)
at ESMLoader.moduleProvider (node:internal/modules/esm/loader:326:22)
at new ModuleJob (node:internal/modules/esm/module_job:66:26)
at ESMLoader.#createModuleJob (node:internal/modules/esm/loader:345:17)
at ESMLoader.getModuleJob (node:internal/modules/esm/loader:304:34)
at async Promise.all (index 0)
at async ESMLoader.import (node:internal/modules/esm/loader:385:24)
at async importModuleDynamicallyWrapper (node:internal/vm/module:437:15)
at async formattedImport (/Documents/WebStorm/new-api-test/node_modules/mocha/lib/nodejs/esm-utils.js:7:14)
at async Object.exports.requireOrImport (/Documents/WebStorm/new-api-test/node_modules/mocha/lib/nodejs/esm-utils.js:38:28)
at async Object.exports.loadFilesAsync (/Documents/WebStorm/new-api-test/node_modules/mocha/lib/nodejs/esm-utils.js:91:20)
at async singleRun (/Documents/WebStorm/new-api-test/node_modules/mocha/lib/cli/run-helpers.js:125:3)
at async Object.exports.handler (/Documents/WebStorm/new-api-test/node_modules/mocha/lib/cli/run.js:370:5)
package.json
{
"name": "new-api-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "mocha --require ts-node/register ./tests/**/*.spec.ts"
},
"author": "",
"license": "ISC",
"dependencies": {
"@types/mocha": "^9.1.1",
"got": "^12.1.0",
"mocha": "^10.0.0",
"ts-node": "^10.9.1",
"typescript": "^4.7.4"
},
"devDependencies": {
"@types/node": "^18.0.6",
"tslib": "^2.4.0"
}
}
tsconfig.json
{
"compilerOptions": {
"target": "ES2020",
"module": "commonJS",
"moduleResolution": "node",
"outFile": "./build",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true
},
}
Snälla hjälp mig!
Svar #1
Måste vara ett problem med ESM-stöd (https://github.com/TypeStrong/ts-node/issues/935). got-paketet är ett native ESM och tillhandahåller inte längre en CommonJS-export