问题标签 [nx.dev]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - Next.js monorepo:子域上的多个应用程序与一个应用程序?
我刚开始使用nx.dev从单个应用程序存储库迁移到单存储库,因为我已将一个非常基本的静态文档应用程序添加到部署到子域的混合中docs.company.com
。
我的主要应用程序当前部署到 main route company.com
。但是,可以将其视为不同的应用程序以及存在的应用程序app1
,例如。我确实喜欢将所有东西都作为单个应用程序的想法,因为它可以通过 nx 和 Vercels monorepo 支持轻松部署。app2
admin
我只是不确定这里的方法是什么。当然,我可以将主应用程序拆分为多个应用程序,并将它们独立部署到子域,例如:
- admin.company.com
- app1.company.com
- app2.company.com
如果理解正确,如果我不喜欢子域并使用一个域,我也可以使用多区域支持。
这个在逻辑上可以拆分为多个应用程序的主应用程序是非公开的,并且需要身份验证。它完全是客户端渲染,而 apollo 客户端用于与 GraphQL API 交互。此 API 服务器还设置http-only
JWT cookie 用于身份验证。我很确定我可以通过设置域 cookie 设置来缓解子域在这方面的问题,这样 cookie 对子域也有效。
但是,由于 cookie 是http-only
我无法从客户端访问它,并且需要在我的全局状态管理(即 overmind.js)中跟踪登录状态。拆分应用程序会增加一些额外的复杂性来保持子域应用程序之间的全局状态。
我不确定这是否值得,或者坚持使用单一应用程序是否更好。我很想听听您的意见,也许我忘记了一些主要问题。我想到的一些问题:
- 使用子域的优缺点是什么?
- 使用多个区域并且只使用一个应用程序更可取吗?
- 如果切换到多个应用程序,如何解决身份验证/全局状态问题?
你觉得呢?你有没有什么想法?
javascript - How to pass env variable to client side in a nx workspace?
I'm running a nextJS app in a NX workspace and I need to get access to env variables on client side.
/apps/myproject/.local.env
/apps/myproject/next.config.tsx
In my nextJS app I'm trying several things:
/apps/myproject/pages/_app.tsx
Running the app via nx serve myproject
does not give me any output on client, but on server side I do see the NEXT_PUBLIC_PROJECT
value. I'm not quite sure if my next.config.js file is read by nx at all...
reactjs - 没有为 ReactJS MonoRepo App 刷新 nx.dev 缓存
我一直在使用 nx.dev 开发我的 ReactJS 应用程序,但我遇到了部署问题。
每当部署我们应用程序的新版本时,返回站点的现有用户需要手动清除他们的缓存(通常我们需要告诉他们使用隐身模式来访问新功能)。这是一个真正的痛苦。
我已经尝试workspace.json
为每个可能的构建配置进行设置"outputHashing": "all"
。但这不起作用。
DevOps 表示他们已经清除了所有的 CDN 缓存,这仍然是一个持续存在的问题。
关于我可以在前端尝试解决这个问题的任何想法?
angular - NX.Dev 从 11 迁移到 12 失败并显示“EBUSY:资源繁忙或锁定”
在我们的项目中,我们使用 11.5.1 版本的 NX.Dev 工作区和 11.2.0 版本的 Angular,我们正在尝试更新到最新的 Angular(12.0.5),但是一旦我运行命令nx migrate latest
(这是由NX.Dev)我总是以这个错误告终:
我们尝试了:
或者
或者
- 这不是抛出错误,而是将“FORCE_NG_UPDATE”作为无法识别的命令抛出(不知道我应该在这里输入什么)
有没有人遇到过类似的问题?我为此做了谷歌并阅读了很多论坛主题并尝试了一些可能的解决方案(上面提到的,不起作用)。
我们的 package.json:
谢谢你们的帮助!
reactjs - Nx.dev Gatsby 在插件 gatsby-plugin-translate-urls 中抛出错误 - 不支持实验性语法“jsx”
嗨,盖茨比,我收到错误消息
错误 #98123 网页包
生成 JavaScript 包失败
/project/node_modules/gatsby-plugin-translate-url s/utils/wrap-page-element.js:目前未启用对实验语法“jsx”的支持 (11:5):
我们使用的是 Nx.dev,所以我们为 Gatsby 创建了模板,并在那里添加了我们的 Gatsby 项目。
tsconfig.json
.babelrc
我真的不知道问题出在哪里。当我评论插件gatsby-plugin-translate-urls
构建成功时。
javascript - 在 GraphQL Node.js 服务器和 Nx 中的 React 之间发送数据
我在Nx monorepo中设置了两个项目,Node.js 和 React 。我想使用 GraphQL 进行通信。我使用命令nx serve api
(Node.js) 和nx serve totodile
(React) 运行的项目。问题是 React 无法从/graphql
端点访问数据。
React 正在运行http://localhost:4200/
。
Node.js 运行在http://localhost:3333/
.
Node.js 部分
根据 Node.js 的GraphQL 指令,我运行 Node.js 服务器。我创建了两个端点/api
和/graphql
.
结果,我能够连接http://localhost:3333/graphql
并接收响应。所以graphql服务器运行良好。
反应部分
在功能组件内部,我使用/api
and获取/graphql
。第一个返回有效数据,但 /graphql 返回 404,无法 POST /graphql。
我对此进行调查:
它必须是带有端口的东西。
我不明白如何/api
能够返回任何数据。为什么在两个端口上?
我应该怎么做才能共享数据/graphql
以做出反应?
angular - 在新的 nx 工作区中创建自定义 .editorconfig、.eslintrc.json 和 .prettierrc
当我从角度预设创建新的 nx 工作区时,我想插入 .editorconfig、.eslintrc.json 和 .prettierrc 的自定义(公司范围)配置,而不是每次都复制它们。
有没有办法自定义 create-nx-workspace?
作为后备,我会对覆盖上述文件的某种“ng add ...”(或正确的 nx 替代方案)感到满意。
visual-studio-code - 如何在 vscode 中同时运行两个 pwa-msedge 调试器?
我的应用程序中有两个前端应用程序需要同时在调试器模式下运行。
这是我到目前为止的配置,但我只能同时运行 Super Admin - Edge 或 Org Admin - Edge。我想要的是在我单独启动它们时同时运行所有它们。
基本上,需要同时从 VSCode 调试器运行两个“pwa-msedge”实例。
typescript - 如何在 nx 工作区的 VSCode 中运行 NextJS 客户端调试器
我在 nx 工作区中运行了 2 个前端应用程序,它们都是下一个 js 应用程序。客户端调试不起作用,因为添加的所有断点和日志点都显示为unbounded。但是附加的服务器端调试器工作得很好。
我有以下用于 vs 代码的 launch.json 文件。
我猜它是由于打字稿和 nx 工作区配置而失败的,这在某种程度上与源地图有关。
NextJS 应用程序在调试模式下运行,因为我在 .env 文件中添加了以下内容,这是我从查看 nx GitHub 问题中得到的。
以下是我的目录结构
angular - NX.Dev - 如何离线运行 create-workspace?
有没有办法在离线时运行以下命令:
我尝试过的:
在在线 PC 上 - 我已经安装了 NodeJS 并运行:
然后使用以下方法创建工作区:
成功后,我将 node_modules 文件夹压缩并将其移至离线 PC,然后再次运行 create-nx-workspace 命令,
但它总是说:installing dependencies with npm
并且失败(因为没有互联网),
我还尝试将以下开关添加到命令中:
但它没有用,任何帮助将不胜感激