我正在尝试完全理解Typescript在Node.js项目中的工作原理。为了实现这一点,我创建了自己的custom_modules
文件夹,下面有一个单独的@types
文件夹用于我的声明,而实际的实现位于custom_modules
下,试图模仿node_modules
的结构。我的目标是通过单独的声明和实现使该模块在非相对项目中可用。我已经能够设置一个使用此设置编译的项目,但运行错误:
Cannot find module 'foo'
来源可在此处获得: https://github.com/anorborg/learn-ts
答案 0 :(得分:0)
node_modules
文件夹是一个特殊的案例,说明如何打字。这是nodejs工作原理的结果。看一下[module-resolution] doucmentation(creator of redux says),它更深入地描述了模块解析在打字稿中的工作原理。
但总之,回答你的问题:你不能以这种方式使用非相对模块路径。 Node将在运行时在node_modules
中查找该文件,并且不会在那里找到它。 tsconfig.json中的paths
属性用于解决在其他情况下可能发生的问题,例如,当针对RequireJS或SystemJS时,但不是在定位节点时。