我是 pnpm 工作区的新手,正在尝试解决以下问题。
我的演示项目:
- 根
- 包
- 通用用户界面
- 主库
- 包
common-ui 是一个基于 Vite 的包,其中包含一些可以被其他包重用的 Vue 组件,在我的示例中,它被 main-lib 使用。
"dependencies": {
"ui-common": "workspace:*"
},
common-ui 在其 package.json 中引用 index.ts
"main": "index.ts",
index.ts 正在导出我的 Vue 组件:
...
export { default as Heading } from './components/Heading/Heading.vue';
...
现在我可以在 main-lib 中导入这些组件:
import { Heading } from 'common-ui'
这一切都很好,但我也希望能够将我的库发布到 npm 注册表。由于 common-ui 使用的是 Vite,所以可以在库模式下构建:https ://vitejs.dev/guide/build.html#library-mode 。我在 common-ui 中的包需要更改为:
{
"name": "common-ui",
"files": ["dist"],
"main": "./dist/common-ui.umd.js",
"module": "./dist/common-ui.es.js",
"exports": {
".": {
"import": "./dist/common-ui.es.js",
"require": "./dist/common-ui.umd.js"
}
}
}
main 不再引用 index.ts 而是仅在运行 vite 命令时才更新的 dist 文件夹。有没有办法让我同时支持发布/版本控制和从 main-lib 中引用实际源代码?
我快速浏览了 Rush.js,但我不确定是否提供了解决方案,我想在继续走这条路之前确定。