【发布时间】:2017-07-06 19:07:06
【问题描述】:
我开始使用webpack 和node/express 环境开发ReactJS 服务器端渲染应用程序react-router。我对每个 webpack 包在开发和生产(运行时)环境中的作用感到非常困惑。
以下是我的理解总结:
webpack:是一个包,是一种将 Web 应用程序的不同部分连接在一起并捆绑在一个 .js 文件中的工具(通常是 bundle.js)。然后将结果文件提供给应用程序加载的 prod 环境,并包含运行代码所需的所有组件。功能包括收缩代码、缩小等。
webpack-dev-server:是一个提供服务器来处理网站文件的包。它还从客户端组件构建单个 .js 文件 (bundle.js),但在内存中提供它。它还可以选择 (-hot) 来监视所有构建文件并在内存中构建一个新包以防代码更改。服务器直接在浏览器中提供服务(例如:http:/localhost:8080/webpack-dev-server/whatever)。内存加载、热处理和浏览器服务的结合让用户可以在代码更改时在浏览器上更新应用程序,非常适合开发环境。
如果我对上面的文字有疑问,下面的内容我真的不确定,所以如果有需要请指教
将webpack-dev-server 与node/express 一起使用时的一个常见问题是webpack-dev-server 和node/express 一样是服务器。这使得这个环境很难同时运行客户端和一些节点/快速代码(API 等)。 注意:这是我所面临的,但如果能更详细地了解为什么会发生这种情况,我会很高兴...
webpack-dev-middleware:这是一个与webpack-dev-server 功能相同的中间件(内存捆绑,热重载),但格式可以注入server/express 应用程序。这样,您在节点服务器内部就有了一种服务器(webpack-dev-server)。 哎呀:这是个疯狂的梦吗???这篇文章如何解决开发和生产方程并让生活更简单
webpack-hot-middleware:这... /p>
尾注:对不起,有任何错误的想法。我真的需要帮助才能在复杂的环境中理解这些变体。如果方便,请添加更多的包/数据来构建整个场景。
【问题讨论】:
-
这里列出的包都没有在服务器端用于生产环境——它们只是开发者工具。如果您想编写自己的自定义开发服务器,您可以使用
webpack-dev-middleware(可能还有webpack-hot-middleware)。除非您想要webpack-dev-server没有的特定功能,否则您应该使用它。
标签: javascript node.js webpack webpack-dev-server webpack-dev-middleware