NodeJS 代码中的Typescript文件路径.ts,编译时不正确

oxcyiej7  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(165)

我在workers.ts中使用以下代码来加载Bull MQ工作文件。

const worker = new Worker('parse', `${ __dirname }/workers/worker-parse.ts`);

现在,在开发过程中,我使用以下脚本,它工作正常

npx pm2 start src/index.ts --watch

但是当我使用tsc构建时,.ts文件路径将不再起作用,因为它被编译为. js。
这是我的制作剧本

"prod": "tsc && npx pm2 start ecosystem.config.js --env production",

现在我想知道,有没有什么方法可以确保在编译版本中,我的worker脚本将查找worker-parse.js,而不是. ts。
或者在TS中有什么方法可以省略扩展名?(试过了,但不能开箱即用)

ef1yzkbh

ef1yzkbh1#

1.尝试在 typescript 中使用worker-parse.js。在JS中,这显然是正确的。取决于所使用的解析器(或运行时),可以在TS中工作。例如,对于ts文件导入的nodenext扩展名为.jsnodenext分辨率是regired的,但不知道是否适用于您的确切情况。
1.从import.meta.url(或__filename)获取当前文件的扩展名

const ext = import.meta.url.split('.').pop()!;
const worker = new Worker('parse', `${ __dirname }/workers/worker-parse.${ext}`);

相关问题