Javascript 是否将typescript路径别名编译为NPM发布的相对路径?

Javascript 是否将typescript路径别名编译为NPM发布的相对路径?,javascript,node.js,typescript,npm,Javascript,Node.js,Typescript,Npm,我有一个用于导入的路径。例如: "paths": { "@example/*": ["./src/*"], } 因此,项目可以使用以下语句直接从导入文件: import { foo } from "@example/boo/foo"; 为了发布到NPM,我正在编译typescript文件,然后将结果复制到dist文件夹。因此,所有*.d.ts和相应的*.js文件都在dist文件夹中。我还将package.json复制到dist文件夹 我现在通过生成一个新的typescript项目来测试

我有一个用于导入的路径。例如:

"paths": {
  "@example/*": ["./src/*"], 
}
因此,项目可以使用以下语句直接从导入文件:

import { foo } from "@example/boo/foo";
为了发布到NPM,我正在编译typescript文件,然后将结果复制到dist文件夹。因此,所有
*.d.ts
和相应的
*.js
文件都在dist文件夹中。我还将
package.json
复制到dist文件夹

我现在通过生成一个新的typescript项目来测试这一点,然后运行
npmi-S../example/dist
,以便安装该项目并尝试运行一些编译过的typescript代码

然而,相对进口不再有效。例如,如果
boo.ts
依赖于
foo.ts
,它会说它无法解析
foo.ts

当我查看
*.d.ts
文件时,它们包含的路径与编译源代码之前使用的路径相同。是否有可能将这些转换为相对路径

更新
我看起来好像为节点生成相对路径是Typescript不会自动执行的事情。如果你像我一样喜欢这个功能,请提供

您可以使用一个名为的项目来完成此任务。如果您将其与模块一起使用,我相信它将实现您想要的功能。

作为arhnee建议的一个简短后续行动,似乎截至2020年8月,Microsoft仍拒绝出于任何原因实施定制变压器,因此这些模块仍然具有相关性

因此,对于未来的读者,这里介绍了如何将TS路径别名编译为相对路径
ttypescript
只是一个转换器框架,它需要一个“路径转换器”来实际转换TS路径别名。因此,您需要同时安装
ttypescript
typescript转换路径

npm i --save ttypescript typescript-transform-paths
然后,只需将以下属性添加到
tsconfig.json
中的
compilerOptions
对象,即可轻松指定用法:

    "plugins": [
      { "transform": "typescript-transform-paths" }
    ]
最后,运行
ttsc
,而不是
tsc