Redis 被拉入 NX 存储库中的 remix 客户端构建

问题描述 投票:0回答:1

我在 NX mono 存储库中有一个混音应用程序,并且 redis 正在被拉入客户端构建中 - 因此我看到了有关需要通过

browserNodeBuiltinsPolyfill
填充浏览器的所有错误 - 如果我没有实际的 redis 客户端*.server.ts 文件中的 remix 应用程序代码。换句话说,如果我想通过将 Redis 客户端代码放入 NX 库中,然后在每个 remix Web 应用程序中使用来重用它,那么当 redis 被拉入客户端代码时,我会收到构建错误。唯一有效的方法是 redis 客户端代码位于 remix 应用程序中。 导入带有 *.server.ts 后缀的文件的技巧不起作用。我已经确保我的路由中没有任何模块副作用可以将其引入 - 包括确保这些东西的导入是在加载器函数中完成的,而不是在模块级别完成的。

很明显我错过了一些东西,但我已经在上面撞了一下头了,真的没有看到问题。

主要问题似乎是 Redis,它应该只是服务器端,被拉入客户端包中,导致所有这些 polyfill 错误。确保 Redis 客户端代码不会意外导入到您的客户端代码中。即使您很小心,杂散导入有时也可能会潜入,尤其是在共享库中。

redis remix nomachine-nx clientbundle
1个回答
0
投票

由于您希望在不同的应用程序之间重用 Redis 客户端代码,因此需要确保包含 Redis 客户端代码的库被标记为仅服务器。这意味着构建您的导入和导出,以便任何与 Redis 相关的内容都严格保留在服务器端。

如果您仍然遇到问题,请尝试创建一个简单的测试用例。仅使用 Redis 客户端代码设置一个最小的 NX 和 Remix 项目,看看是否可以隔离问题。有时重新开始可以帮助找出问题所在。

© www.soinside.com 2019 - 2024. All rights reserved.