我创建了一个反应应用,服务器和客户端都共享相同的package.json
:
├───build
│ └───static
│ ├───css
│ ├───js
│ └───media
├───server
├───src
├───package.json (shared)
我的问题很简单,最终生产的React版本中是否包含package.json
中的所有软件包?
例如,我将express
用于服务器。它包含在React版本中吗?
如果是这样,有什么办法可以避免呢?还是我选择了错误的体系结构?
编辑:
我正在使用create-react-app
(默认模式)
答案 0 :(得分:0)
否*(在通常情况下)。
最流行的react build工具将使用webpack(或其他做类似事情的捆绑器)。 Webpack从他为依赖关系而爬网的那些入口点接收一些“入口点文件路径”。然后,webpack将所有内容打包到一个输出文件(或一组文件,具体取决于设置)中。
如果您没有从任何前端文件导入Express,它将不会进入捆绑包。
答案 1 :(得分:0)
我不确定要为您的Express和React应用程序合并package.json,我看不出这样做有什么好处,因为React使用Webpack并合并Express服务器可能会弄乱一些默认设置,我将与您分享你我怎么做。
在进行开发时,您将有2个独立运行的应用程序。 create-react-app和node / express服务器都将彼此独立运行,并且它们将具有各自独立的package.json。
但是,在生产环境中,您将在React应用程序上运行npm run build,它将作为Express服务器中的静态文件提供。内置的React应用没有package.json
我已经实现了这两种情况,您可以在此处查看
开发版本: https://github.com/iqbal125/react_hooks_fullstack_skeleton