我创建了一个组件库(React,TypeScript和Webpack),它的结构如下所示:
- src
- ui-components
- ComponentA
- ComponentB
- index.ts
- plugins
- PluginA
- PluginB
- index.ts
- index.ts
src/index.ts
看起来像这样:
export * from './ui-components';
export * from './plugins';
src/ui-components/index.ts
看起来像这样:
export * from './ComponentA';
export * from './ComponentB';
src/plugins/index.ts
看起来像这样:
export * from './PluginA';
export * from './PluginB';
我的package.json
看起来像这样:
"main": "dist/index.js",
"module": "dist/index.js",
"typings": "dist/index.d.ts",
"files": [
"dist/**"
],
"exports": {
"./ui-components": {
"import": "./dist/ui-components/index.d.ts"
},
"./plugins": {
"import": "./dist/plugins/index.d.ts"
}
然而,当我将这个库导入到一个新项目时,我似乎可以导入ui组件和插件的唯一方法是:
import { ComponentA } from 'myLibrary';
或:
import { ComponentA } from 'myLibrary/dist/ui-components
我怎样才能让我的库导入为:
import { ComponentA } from 'myLibrary/ui-components'
import { PluginA } from 'myLibrary/plugins'
?
1条答案
按热度按时间wlwcrazw1#
我假设你已经安装了typescript,在
list
目录下输出js
文件。这就是为什么你必须从myLibrary/dist/ui-components
导入。有两种方法可以解决这个问题。
dist
目录。你将能够直接从ui-components
目录导入。ui-components
指向dist/ui-components/index.js
文件。你可以在这里阅读更多关于导出Map的信息。