“tsconfig.json),:无法使用模块外的导入语句”错误的主要原因是非CommonJS模块(SyntaxError中的compilerOptions.module,但我与"module": "CommonJS"有相同的错误)。
最初,我的tsconfig.json是:
{
"compilerOptions": {
"target": "ES2020",
"module": "CommonJS",
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": false,
"experimentalDecorators": true,
"baseUrl": "./01-Source",
"paths": {
"@EnterpriseBusinessRules/*": [ "./BusinessRules/Enterprise/*"],
// Other aliases
}
}
}但是使用此配置,ts-node将不理解别名,并且将是错误的。
Error: Cannot find module '@EnterpriseBusinessRules/XXX/NNN'尽管ts-节点不低于别名,但它理解import。为了解决别名问题,我添加了
{
"compilerOptions": { /* */ },
"ts-node": {
"require": [
"tsconfig-paths/register"
]
}
}部分到*tsconfig.json,而现在的错误是
import {
^^^^^^
SyntaxError: Cannot use import statement outside a module我知道,在ts-node组中,我们可以覆盖compilerOptions如下:
{
"ts-node": {
"compilerOptions": {
"module": "CommonJS",
"esModuleInterop": true
},
"require": [
"tsconfig-paths/register"
]
}
}但是模块已经是CommonJS,而已经是true,所以我不能覆盖它(但即使是尝试,也不会改变)。
发布于 2022-04-13 10:37:55
在这种情况下,原因不是安装ts-节点。我通过nodemon执行了.ts文件,当目标文件为.ts时,nodemon会删除ts-node的执行,但是必须安装ts-nodeE 211。
https://stackoverflow.com/questions/71836307
复制相似问题