打字稿自定义节点模块

时间:2016-11-25 22:47:49

标签: node.js typescript

我正在尝试完全理解Typescript在Node.js项目中的工作原理。为了实现这一点,我创建了自己的custom_modules文件夹,下面有一个单独的@types文件夹用于我的声明,而实际的实现位于custom_modules下,试图模仿node_modules的结构。我的目标是通过单独的声明和实现使该模块在非相对项目中可用。我已经能够设置一个使用此设置编译的项目,但运行错误:

Cannot find module 'foo'

来源可在此处获得: https://github.com/anorborg/learn-ts

1 个答案:

答案 0 :(得分:0)

node_modules文件夹是一个特殊的案例,说明如何打字。这是nodejs工作原理的结果。看一下[module-resolution] doucmentation(creator of redux says),它更深入地描述了模块解析在打字稿中的工作原理。

但总之,回答你的问题:你不能以这种方式使用非相对模块路径。 Node将在运行时在node_modules中查找该文件,并且不会在那里找到它。 tsconfig.json中的paths属性用于解决在其他情况下可能发生的问题,例如,当针对RequireJS或SystemJS时,但不是在定位节点时。