将Typescript转换为Javascript会导致模块导入错误,因为缺少.js后缀
我刚刚开始使用typescript和tsconfig.json将Typescript转换为Javascript会导致模块导入错误,因为缺少.js后缀,javascript,node.js,typescript,Javascript,Node.js,Typescript,我刚刚开始使用typescript和tsconfig.json { "compilerOptions": { "target": "ES2017", "outDir": "dist", "moduleResolution": "node" } } 当我在typescript文件中导入模块时,我
{
"compilerOptions": {
"target": "ES2017",
"outDir": "dist",
"moduleResolution": "node"
}
}
当我在typescript文件中导入模块时,我将其作为
import {something} from "./coolfilename"
但是,每当我运行tsc时,模块都会转到
import {something} from "./coolfilename"
但node希望它是
import {something} from "./coolfilename.js"
但是写作
import {something} from "./coolfilename.ts"
也会抛出一个错误
它想让我们做什么?我相信如果你用
.js
后缀编写导入,它会工作(即使你的文件名是_实际上.ts
)@Evert-nah,他们找不到模块。如果你想在节点上使用Typescript,你看过ts节点了吗。无需使用tsc,也可以避免目录中的文件混乱。我目前正在使用ts节点,但我已经准备好发布代码。我不应该以js的形式发布代码吗?我在生产中使用TS节点,但是如果您为第三方或npm发布代码,您将希望传输。不确定node为什么需要扩展名.js
,您是在esm模式下运行node吗?我仍然使用commonjs、Typescript Transfiles esm模块。