React build中是否包含package.json中的所有软件包?

时间:2019-06-01 19:30:35

标签: node.js reactjs express

我创建了一个反应应用,服务器和客户端都共享相同的package.json

├───build
│   └───static
│       ├───css
│       ├───js
│       └───media
├───server
├───src
├───package.json (shared)

我的问题很简单,最终生产的React版本中是否包含package.json中的所有软件包?

例如,我将express用于服务器。它包含在React版本中吗?

如果是这样,有什么办法可以避免呢?还是我选择了错误的体系结构?

编辑:

我正在使用create-react-app(默认模式)

2 个答案:

答案 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

产品构建: https://github.com/iqbal125/react-prod9