这似乎是一个微不足道的问题,但不太清楚需要使用什么设置/配置来解决这个问题.
以下是Hello World程序目录 struct 和源代码:
目录 struct :
| -- HelloWorldProgram
| -- HelloWorld.ts
| -- index.ts
| -- package.json
| -- tsconfig.json
指数ts:
import {HelloWorld} from "./HelloWorld";
let world = new HelloWorld();
你好世界ts:
export class HelloWorld {
constructor(){
console.log("Hello World!");
}
}
包裹json:
{
"type": "module",
"scripts": {
"start": "tsc && node index.js"
}
}
现在,执行命令tsc && node index.js
会导致以下错误:
internal/modules/run_main.js:54
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'HelloWorld' imported from HelloWorld\index.js
Did you mean to import ../HelloWorld.js?
at finalizeResolution (internal/modules/esm/resolve.js:284:11)
at moduleResolve (internal/modules/esm/resolve.js:662:10)
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:752:11)
at Loader.resolve (internal/modules/esm/loader.js:97:40)
at Loader.getModuleJob (internal/modules/esm/loader.js:242:28)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:50:40)
at link (internal/modules/esm/module_job.js:49:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
显然,这个问题似乎源于这样一个事实:在index.ts
Typescript文件中,import语句(import {HelloWorld} from "./HelloWorld";
)中没有.js
扩展名.Typescript在编译过程中没有抛出任何错误.然而,在运行时 node (v14.4.0)想要.js
扩展.
希望背景清楚.
现在,如何更改编译器输出设置(tsconfig.json或任何标志),以便在index.js
文件中的Typescript到Javascript编译期间,本地相对路径导入(如import {HelloWorld} from ./Helloworld;
)将被import {HelloWorld} from ./Helloworld.js;
替换?
注: