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