0

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

4

0 回答 0