node.js/typescript 找不到本地模块

node.js/typescript can not find local module

当我尝试导入本地文件时,它要么在运行时抛出错误,但使用 tsc 编译它是有效的。当我使其适用于 node.js 时,打字稿会在编译时抛出错误。

当我做的时候

import A = require("./A");

node.js 抱怨,它找不到 A 模块,打字稿编译得很好。

但是当我把它改成

import A = require("./js/A");

node.js 可以找到模块,但 Typescript 告诉我有错误。

布局是这样的:

js
\- A.ts
\- B.ts

我单独编译文件,我已经尝试搜索更改打字稿编译器的根目录,但我找不到任何东西。

没有看到你是如何编译 TypeScript 的,也没有看到你是如何尝试从 node require() 这些文件的,很难回答这个问题。

即便如此,我可以告诉你 TypeScript 和 node.js 都期望 require() 被赋予一条路径 相对于执行 require.

的文件

如果我有一个 js/A.ts 看起来像这样:

import B = require("./B");
console.log(B.thing);

还有一个 js/B.ts 看起来像这样:

var myStuff = {
    thing: "I'm a thing!"
}
export = myStuff;

然后我可以用一个tsc -m commonjs ./js/A.ts

编译两个文件

然后我可以 运行 节点:node ./js/A.js 并且会看到输出:

I'm a thing!