小编Jac*_*oed的帖子

在 npm/yarn 工作区中,包应该使用 src 还是 dist

我想为我们的前端应用程序使用 monorepo。我们希望将一些 React UI 组件划分到“/packages/ui-components”下的包文件夹中,并将应用程序保留在“/apps/app”文件夹中,然后让应用程序通过导入来使用 ui-components(简化设置) 。我们不打算很快将这些包发布到各个 npm 存储库,而只是让最终的应用程序运行。

我开始有点担心我们如何才能拥有最好的工作流程,由于某种原因,我在我的研究中找不到这个:

应用程序应该使用包中的 src 文件还是将每个包编译到 dist 文件夹并仅导入这些文件?

在工作流程方面,我们希望在不同的包中无缝工作,因此,如果有人在包中进行编辑,我们希望这些更改立即显示在应用程序中。

与使用 dist 输出相比,我看到使用源文件的一些优点和缺点。

直接使用 src 的优点:

  • 更好的树摇动,因为依赖关系可以是对等依赖关系,并且可以组合多个包使用的库。
  • 由于 webpack 可以更好地访问完整依赖树和常用函数等原始数据,因此最终包大小更小。
  • 较小项目的开发迭代速度更快,因为只有一个构建,而智能 Webpack 可能只能重新编译一些更改的文件。

使用 dist 的优点:

  • 更多独立的包,因为它们可以包含自己的构建管道。
  • 由于对等依赖项较少并且需要特殊的 webpack-config,因此导入会更容易
  • 准备作为公共 npm 包发布
  • 可能更快的构建时间,因为只有更改的包和主应用程序需要在更改时重新编译(我假设 webpack 可以进行缓存,所以也许这并不重要)

我确信我遗漏了很多细节;如今,设置良好的开发流程非常复杂,我想让我的同事尽可能简单地使用它。

TL;博士;

mono-repo 中的包应该构建到他们的 dist 中供其他人使用,还是直接从 src 导入更好。

npm webpack lerna yarnpkg yarn-workspaces

9
推荐指数
1
解决办法
2043
查看次数

标签 统计

lerna ×1

npm ×1

webpack ×1

yarn-workspaces ×1

yarnpkg ×1