Electron、create-react-app、Next.js与Nest.js兼容性及React必要性问询
问题1:Electron + create-react-app(已集成react-redux、react-router-dom) + Next.js + Nest.js的技术组合能否正常适配运行?
这套组合理论上可以跑,但完全没必要同时保留create-react-app和Next.js,属于冗余选型,会徒增项目复杂度:
- Electron是桌面端容器,本质就是Chromium外壳加Node.js运行时,不管是create-react-app构建的单页应用,还是Next.js构建的页面资源都能加载,二者选其一即可,同时引入会出现构建配置冲突、路由逻辑冲突、打包体积暴增等问题。
- Nest.js可以作为Electron主进程的业务逻辑层使用,也可以独立做后端服务,和前端侧的React/Next.js技术栈没有适配冲突。
建议调整方案:如果你的桌面应用不需要SSR(服务端渲染)能力,直接保留现有create-react-app + react-redux + react-router-dom + Electron + Nest.js的组合就行;如果确实需要用到Next.js的SSR/SSG、文件路由等能力,直接把create-react-app替换成Next.js即可,不用同时留两套React开发框架。
问题2:使用Next.js的前提下,是否无需再单独引入React?
Next.js已经内置了React、ReactDOM依赖,正常开发时不需要你手动在package.json里单独安装React相关包,直接在组件文件里写React语法就能运行:
- 不管是用Next.js的App Router还是Pages Router开发,直接写React组件、调用React Hook都能正常跑,甚至不需要额外写
import React from 'react'(新版Next.js默认支持JSX自动转换)。 - 只有当你需要使用特定版本的React、或者有自定义React相关配置的需求时,才需要手动指定React版本安装。
内容的提问来源于stack exchange,提问作者Teddy Bang
相关产品推荐
相关产品推荐

