为啥 server.js 从来没有内置在 Webpack 中?
Posted
技术标签:
【中文标题】为啥 server.js 从来没有内置在 Webpack 中?【英文标题】:Why is server.js never built in Webpack?为什么 server.js 从来没有内置在 Webpack 中? 【发布时间】:2021-05-16 04:44:06 【问题描述】:我的前端使用Vue.js 3
,后端使用Node/Express。我正在尝试启用服务器端渲染,但事实证明这很困难。
我了解客户端内置于名为app.js
的文件中。但是我从来没有看到server.js
被构建并导出到dist
文件夹?以下是一些示例:
-
vue-hackernews,其中有一个
entry-client.js
和 entry-server.js
文件被提供给 Webpack,但 server.js
却看不到任何地方。
另一个question/answer也只提供main.server.js
作为服务器入口文件,不构建server.js
。
据我了解,server.js
是后端,必须运行 Node.js/Express 才能工作。在上面的两个示例中,究竟是从服务器条目文件构建了什么,因为它似乎不是 Express 路由所在的server.js
。当然server.js
必须构建到 dist 文件夹中,以便它可以被诸如 Windows IIS 之类的 Web 服务器访问和运行(我正在使用)?
【问题讨论】:
webpack 配置,对于“生产”,可以包含仅与 server.js 相关的第二个配置块(它自己的输出在 ./dist 中)。 . module.exports = [ conf-1 , #2 ] 为了使用 dev-server 和 HMR,你将有单独的“开发”配置 【参考方案1】:你是对的,通常不需要捆绑服务器代码。
但这样做有一些好处:
-
一个项目范围的配置,必须可以共享客户端和服务器配置 - 无需维护多个构建工具
服务器代码 HMR(热模块更换)- 您可以在开发期间交换服务器代码,而无需重新启动服务器
客户端和服务器之间的代码共享
代码转译 - 服务器代码可以用现代语法(ESM 等...)编写,并将转译为目标节点版本。
【讨论】:
那么如果server.js
不在dist文件夹中,web服务器如何运行呢?如果server.js
使用 ES6+ 语法怎么办?
关于 es6 语法,取决于配置,但通常您可以将服务器代码转换为特定的节点版本
关于 server.js,我不确定我是否理解了这个问题
关于 server.js,server.js
不需要在 dist 文件夹中,它不是一个神奇的文件夹,文件可以在任何地方,运行它所需要的只是到node ./what-ever/folder/server.js
我的意思是作为构建和部署过程的一部分,server.js
是如何处理的?人们是否真的将文件复制/粘贴到生产服务器?!以上是关于为啥 server.js 从来没有内置在 Webpack 中?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 PhoneGap Geolocation onSuccess 从来没有第一次触发?
我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段
我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段
web项目部署成功,端口号,路径都正确,项目从来没有从命名,但是访问的时候报错404.求解,到底是为啥。
为啥 URLSession.DataTaskPublisher 从来不发布值?
为啥我无法让我的后端文件 server.js 连接到前端?错误:POST http://localhost:3000/api/person/add 400(错误请求)?