问题描述
我正在使用节点,打字稿和其他软件包来开发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无法正常工作)。我看到的链接:
- Require absolute instead of relative
- ttypescript
- ts-transform-paths
- link-module-alias
- Relative path hell
- tsconfig paths
请,如果有人知道如何解决相对路径地狱,如果您通过示例或帮助我的方式告诉我如何
,我将不胜感激。解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)