1

我有一个用 Typescript 编写的项目,我node-devts-node本地环境中使用它进行开发。我正在使用child_process'sfork方法来实例化一个子进程,如下所示:

fork(path.join(__dirname, './worker.ts'));

这很好用,我什至可以在 VS Code 中为工人设置断点。

问题是,在构建(转译)我的项目时,MODULE_NOT_FOUND由于worker.ts变成了worker.js. 最初,我的想法是在 fork ( fork(path.join(__dirname, './worker'));) 时省略文件扩展名,但如果我这样做,当使用 运行项目时node-dev,它会抛出 a,MODULE_NOT_FOUND因为如果扩展名不存在,它就无法解析文件。

有什么解决方法吗?也许是一个额外的配置选项node-dev

我在使用节点 v12.22.1 的 Windows 10 上

4

1 回答 1

2

我建议的一个简单解决方案是读取当前文件类型。编译后的文件应以“.js”结尾,而源文件应以“.ts”结尾。将path.extname 方法与__filename结合使用,您可以轻松提取该文件扩展名并将其连接到您的文件名。

fork(path.join(__dirname, './worker' + path.extname(__filename)));
于 2021-08-28T07:16:38.843 回答