这个is similar to a question I asked previously,但是我认为目前在打字稿中目前还没有一种方法,所以我打开了一个issue for it here。
为了查看如何将路径别名编译为输出,我对boo.ts
类进行了一个简单的实验,该类需要foo/foo.ts
导出的函数。
TS导入语句被编译为以下ES5导入语句:
var foo_1 = require("@example/foo/foo");
现在,如果将其作为tsimportexample
发布到NPM,且模块的根目录为boo.js
。因此,我们有效地采用了这种类型的源代码结构:
├── src
│ ├── boo.ts
│ └── foo
│ └── foo.ts
├── package.json
│ ├── boo.d.ts
│ ├── boo.js
│ └── foo
│ ├── foo.d.ts
│ └── foo.js
现在我们从客户端执行import { booFunction } from 'boo';
,然后节点将抱怨它找不到foo
,因为boo
这样导入了foo:
var foo_1 = require("@example/foo/foo");
节点不知道@example/...
在哪里...
你们认为这是一个打字稿错误,还是我只是想念一些东西?
我似乎为Node生成相对路径是Typescript无法自动执行的。如果您希望像我一样想要此功能,请提供feedback on this bug report。