如何解析相对路径地狱带打字稿的节点

问题描述

我正在使用节点,打字稿和其他软件包来开发CLI。这个想法很简单,CLI为您的节点项目(javascript或打字稿)提供了初始结构

好吧,在测试时,我发现了一个已经好几天都无法解决的问题。初始结构为:

├────src
│    ├───api
│    │   └───users
│    │        ├───users.controller.ts/js
│    │        ├───users.interface.ts (just for typescript projects)
│    │        ├───users.routes.ts/js
│    │        └───users.service.ts/js
│    ├───config
│    │   └────environments
│    │        ├───development.ts/js
│    │        ├───index.ts/js
│    │        └───production.ts/js
│    ├───global
│    │   └───services
│    │        └───abstract.service.ts (just for typescript projects)
│    ├───middlewares
│    ├───database.ts/js
│    ├───index.ts/js
│    └───server.ts/js
├───.editorconfig
├───.env
├───.gitignore
├───package.json
├───package-lock.json
└───tsconfig.json (just for typescript projects)

打字稿服务文件是抽象服务的扩展(此服务位于./src/global/services/abstract.service.ts中)。每个组件都将位于./src/api目录中,并具有各自的文件夹(如用户组件)。在用户组件中导入抽象类的相对路径为../../global/services/abstract.service

但是您可以在其他目录中创建组件,因此先前的相对路径不起作用。为了解决这个问题,我决定使用像webpack这样的路由配置。因此,我不想使用以前的相对路径,而是要使用类似@global/services/abstract.service

如果节点项目使用带有babel的javascript,我就实现了这一目标:

  • @ babel / polyfill
  • @ babel / cli
  • @ babel / core
  • @ babel / node
  • @ babel / preset-node
  • babel-plugin-module-resolver

但是我没有实现那是一个打字稿项目。 tsconfig.json具有“路径”选项,该选项在开发中有效,但是当我将打字稿编译为javascript时,此方法不起作用。我尝试了多种方法解决该问题,但一切都失败了。这些是到目前为止我使用过的软件包:

  • link-module-alias()
  • 带有tsconfig-path的ts-node
  • ttypescript
  • @ zerollup / ts-transform-paths

第二个脚本可以正常工作,但是我必须对ts文件中的每个更改重新启动,也许我没有在package.json中正确配置脚本,因为tsc-watch无法正常工作)。我看到的链接

请,如果有人知道如何解决相对路径地狱,如果您通过示例或帮助我的方式告诉我如何

,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)