我已经在打字稿中启动了一个应用程序。我已经了解了TS的一些功能,它看起来像是什么东西,可以帮助我,但是我不会像我期望的那样工作。 TS的文档说明了模块解析章节中的路径映射。如果我理解正确的话,这个模块映射可以在import
中保存很少甚至很多双点。所以我创建了一个带有一个文件(此时)的“inc”目录,它将包含在多个目录中的多个文件中。进入tsconfig我写了以下内容:
"baseUrl": ".",
"paths": {
"@inc/*": [ "inc/*" ]
}
现在,我希望,使用import { X } from "@inc/somefile"
(甚至从文件夹树深处的文件中休息)将导致从./inc/somefile.ts(或.js,运行时)导入export X
。
Hovewer,编译器/转换器将完整保留import
语句,所以当我尝试使用node.js
运行此代码时,它会因为没有@inc/somefile
而死亡 - 节点不读取tsconfig而tsc不会创建任何映射函数。
当然,我可以在某种需要的包装器中手动读取和解析path
元素,但我相信有些东西我做错了和/或更好的方法来实现这一点。
谢谢您的回复。
记住这一点
如果您然后尝试用节点(或ts节点)执行编译的文件,它将只查看node_modules文件夹一直到文件系统的根目录,因此将找不到
tsconfig
中路径指定的模块。 - 在tsconfig-paths自述文件中介绍。
总之,直接要求tsconfig-paths
进入依赖列表并在运行时加载tsconfig文件可能是一个快速的解决方案。