我在打字稿中有一个测试nodeJS服务器代码。 尝试运行ts文件时出现此错误:
TypeError [ERR_UNKNOWN_FILE_EXTENSION]:的文件扩展名“ .ts”未知
我的package.json
{
"name": "server",
"version": "1.0.0",
"description": "server",
"main": "server.ts",
"type": "module",
"scripts": {
"test": "test server",
"prebuild": "tslint -c tslint.json -p tsconfig.json --fix",
"build": "tsc",
"prestart": "npm run build",
"start": "node .",
"tsc": "tsc"
},
"author": "HL",
"license": "ISC",
"devDependencies": {
"@types/node": "^14.0.6",
"tslint": "^6.1.2",
"typescript": "^3.9.5"
},
"dependencies": {
"@types/express": "^4.17.6",
"ejs": "^3.1.3",
"express": "^4.17.1",
"http": "0.0.1-security",
"mysql": "^2.18.1",
"util": "^0.12.3"
}
}
注意,我需要使用type:模块,因为删除它时会出现错误:
SyntaxError: Cannot use import statement outside a module
at wrapSafe (internal/modules/cjs/loader.js:1067:16)
at Module._compile (internal/modules/cjs/loader.js:1115:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
请帮助。
答案 0 :(得分:2)
从"type": "module"
文件中删除package.json
。
希望这会有所帮助。
答案 1 :(得分:1)
这可能来自多个方面(如果由于某些通用配置错误而我忘记了一些内容,请注意:)
main
中的package.json
字段更改为<buildFolder (normally diet)>/server.js
,以引用生成的文件而不是打字稿文件。module
字段tsconfig.json
更改为CommonJS
以避免构建ES6模块(这是一个问题,尤其是对于webpack 答案 2 :(得分:0)
您需要先进行编译,然后再运行node或使用ts-node运行您的打字稿。另外,这可能是您的tsconfig和导入引起的问题。