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!
当我尝试导入本地文件时,它要么在运行时抛出错误,但使用 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!