我有一个共享库在一个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
的脚本,而不是默认的"检查文件系统"。机械师。