4

Typescript 最近引入了一个与 monorepos 一起使用的新功能:引用。通过指定引用,您可以使用构建所有相互依赖的包tsc -b(另请参阅此博客文章

这似乎非常适合与大型单声道存储库一起使用,其中一些包是无服务器服务。这些服务通常依赖于一个或多个 monorepo 包。我在这里创建了一个示例:

https://github.com/tommedema/serverless-mono-example

虽然构建与 .zip 配合得很好tsc -b,但问题是无服务器框架需要上传单个工件 .zip(在我的例子中是到 AWS)。在构建无服务器服务时,例如这个示例,只会捆绑最近源文件的编译文件。

如何使用 typescript 的引用功能与无服务器单声道存储库一起使用?

4

1 回答 1

3

如果您可以生成单个输出文件并使用模块加载器,则可以使用outFileandprepend .

如果您想要多个输出文件,也许值得提出一个建议,要求在这种情况下选择捆绑依赖项;您将是今天第二个在 Stack Overflow 上询问此问题的人。编辑:建议在这里

编辑 2:经过广泛讨论,结论是启用nohoist最终 Yarn 工作区的选项,这为我们提供了从node_modules其他工作区的符号链接。在我们调用tsc -b最终工作区后,无服务器打包工具会按照符号链接生成一个具有正确结构的 zip 文件。在 TypeScript 级别不需要捆绑。警告:Yarn 似乎在最终工作区中安装了依赖项的 devDependencies,这对我来说似乎是错误的,并且使 Serverless 混淆为不必要地将这些模块包含在包中。

于 2018-08-20T22:56:26.313 回答