将Typescript转换为Javascript会导致模块导入错误,因为缺少.js后缀

将Typescript转换为Javascript会导致模块导入错误,因为缺少.js后缀,javascript,node.js,typescript,Javascript,Node.js,Typescript,我刚刚开始使用typescript和tsconfig.json { "compilerOptions": { "target": "ES2017", "outDir": "dist", "moduleResolution": "node" } } 当我在typescript文件中导入模块时,我

我刚刚开始使用typescript和tsconfig.json

{
    "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模块。