【发布时间】:2020-08-23 10:27:30
【问题描述】:
我在我的 monorepo 中使用 lerna 和 yarn 工作区。包结构如下:
root
`--- packages
|--- pkg1
| |--- src
| | `--- index.ts
| `--- dist
| `--- index.js
`--- pkg2
|--- src
| `--- index.ts
`--- dist
`--- index.js
-
src文件夹被编译成dist文件夹。 - 从每个包中,我想只发布
dist文件夹,这样导入工作就不需要package.json 中指向dist文件夹内的main条目。使用 lerna 很容易做到这一点:lerna publish --contents dist。
这适用于需要使用此存储库的外部项目,但它不适用于存储库本身。例如,如果pkg2 依赖于pkg1,它会在pkg1/index.js 处查找pkg1 的index.js 文件,而实际上编译后的版本位于pkg1/dist/index.js 下。我怎样才能做到这一点?
附:我在 material-ui 这样的存储库中看到了这项工作,但我无法解释它是如何在那里工作的!
【问题讨论】:
-
您找到解决方案了吗?还要检查stackoverflow.com/questions/61568475/…
-
不,我还没有找到好的解决方案。还查看了您指出的 SO 问题。
-
我今天下午的大部分时间都在将它迁移到nx.dev,它工作得很好,但我只是遇到了一个构建错误。
-
这不是我想要的解决方案,但我所做的是将
tsconfig.json中的outDir设置为'./'。这样编译后的文件全部转储到根文件夹中,我可以在没有/dist/...的情况下引用它们。
标签: lerna yarn-workspaces npm-publish