ts-node为简单导入“./hi”抛出ERR_MODULE_NOT_FOUND

uz75evzq  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(166)

我创建了一个项目用于说明:
https://github.com/Ser5/ts-node-nohi
你可以用

git clone https://github.com/Ser5/ts-node-nohi
cd ts-node-nohi
npm i
npx ts-node main.ts

字符串
它抛出这个错误:

G:\Programming\JS\ts-node-nohi\node_modules\ts-node\dist-raw\node-internal-modules-esm-resolve.js:366
    throw new ERR_MODULE_NOT_FOUND(
          ^
CustomError: Cannot find module 'G:\Programming\JS\ts-node-nohi\hi' imported from G:\Programming\JS\ts-node-nohi\main.ts
    at finalizeResolution (G:\Programming\JS\ts-node-nohi\node_modules\ts-node\dist-raw\node-internal-modules-esm-resolve.js:366:11)
    at moduleResolve (G:\Programming\JS\ts-node-nohi\node_modules\ts-node\dist-raw\node-internal-modules-esm-resolve.js:801:10)
    at Object.defaultResolve (G:\Programming\JS\ts-node-nohi\node_modules\ts-node\dist-raw\node-internal-modules-esm-resolve.js:912:11)
    at G:\Programming\JS\ts-node-nohi\node_modules\ts-node\src\esm.ts:218:35
    at entrypointFallback (G:\Programming\JS\ts-node-nohi\node_modules\ts-node\src\esm.ts:168:34)
    at G:\Programming\JS\ts-node-nohi\node_modules\ts-node\src\esm.ts:217:14
    at addShortCircuitFlag (G:\Programming\JS\ts-node-nohi\node_modules\ts-node\src\esm.ts:409:21)
    at resolve (G:\Programming\JS\ts-node-nohi\node_modules\ts-node\src\esm.ts:197:12)
    at resolve (G:\Programming\JS\ts-node-nohi\node_modules\ts-node\src\child\child-loader.ts:15:39)
    at nextResolve (node:internal/modules/esm/loader:173:28)


tsc main.ts处理文件没有问题。例如,以下命令会产生预期的结果:

tsc --outDir ../ts-node-yeshi/ main.ts && cd ../ts-node-yeshi/ && node main.js


如何说服ts-node,我的代码是好的?

vi4fp9gy

vi4fp9gy1#

导入中的Typescript和文件扩展名有一些有趣的行为。阅读这里:https://devblogs.microsoft.com/typescript/announcing-typescript-4-7/#type-in-package-json-and-new-extensions
简短回答:将.ts文件扩展名添加到main.ts中的导入:

import { hi } from './hi.ts';

hi();

字符串
那么事情应该会像预期的那样工作。

相关问题