如何从Typescript包的子文件夹导入?



我有一个共享库在一个Typescript单线程,我需要从foo/bar/包访问:

root/
  packages/
     foo/
     bar/
     shared/
       dist/
         index.js
         index.d.ts
         index.d.ts.map
           some/
             nested/
               thing/
                 index.js
                 index.d.ts
                 index.d.ts.map

包/共享/package.json :

...
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"scripts": {
   "build": "tsc -p tsconfig.json"
}
...

包/共享/dist/index.js :

export { default as TopLevelThing } from './some/other/folder'

包/共享/dist/一些/嵌套/件/index.js :

export { default as NestedThing } from './NestedThing'

现在,从foo/bar/的文件,我可以这样做:

import { TopLevelThing } from '@app/shared'
import { NestedThing } from '@app/shared/dist/some/nested/thing'

但是dist/部分显然不是我想在名称空间中的东西。我希望能够像这样导入:

import { TopLevelThing } from '@app/shared'
import { NestedThing } from '@app/shared/some/nested/thing'

我怎么才能做到呢?

与这个问题相关,也可能是这个问题的重复,但不需要npm发布。

您可以在Node.js v12及以后的版本中使用package.json中的exports字段。这允许您链接例如/some/nested,以实际使用/dist/some/nested的脚本,而不是默认的"检查文件系统"。机械师。

最新更新