如何在TypeScrip中创建本地模块

我已在src/modules/my-module/文件夹中创建了package.json,并定义了导出我们所需的所有内容的主文件。

我现在可以从中导入import {A} from '../../modules/my-module'

我想将语法更改为import {A} from 'my-module',我有几个原因:

  • 将模块移动到另一个文件夹时,我不想更改调用此模块的所有代码。
  • 稍后,我希望能够将模块作为NPM包移动到单独的存储库,并在多个项目中重复使用它。我不想稍后更改所有调用代码。

我已设法通过添加到tsconfig.json

来编译它
"paths": {
  "my-module": ["src/modules/my-module"]
}

但我不能通过node.js运行结果,因为节点找不到模块。在这种情况下,有没有办法使用非实际的模块引用。


解决方案

将ts文件转换为js时,TS不会转换"my-MODULE"。

使用module-alias包可能会解决您的问题。

将以下配置添加到Package.json:

"_moduleAliases": {
   "my-module": "<your_build_folder>/modules/my-module"
},

和主文件(server.ts/index.ts)第一行的代码

import 'module-alias/register';

相关文章