我是 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 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,但我不确定是否提供了解决方案,我想在继续这条道路之前确定一下。