node.js - 如何使用 EJS 模板提供 Webpack 包?
问题描述
我正在尝试使用 Express 和 EJS 组合一个基本的全栈应用程序,并使用 Webpack 捆绑我的静态资产。我遇到的困境之一是:我在 Express 中的不同路由使用 EJS 返回服务器端构建的 HTML,但我不知道如何将这些模板连接到我正在构建的 webpack 资产。
对于以下问题,我非常感谢您的建议:
1) 部署结构。目前我有一个看起来像这样的文件结构:
根
--- app.js(我的快速应用程序)
- - 楷模
--- 意见
--- 路线
--- public(静态资产)
------ src (webpack 的入口点是 index.js 在这里)
------ dist (webpack 的输出在这里)
--- webpack.config.js
对我来说直观的感觉是 webpack 将构建一个位于根级别的 dist 文件夹,或者将其放在 nginx 或用于提供静态文件的某个地方。但是,如果我使用 Heroku 这样的 PaaS 进行部署,那会是“正确的做法”吗?我猜只要我的 html 使用正确的路径,这并不重要。
2) 如何将 Webpack 链接到 EJS?我研究了以下两个加载器: https ://www.npmjs.com/package/ejs-loader和https://www.npmjs.com/package/ejs-html-loader以及其他,但是对于出于某种原因,他们似乎要求您在配置文件中传递内联变量,而不是在 Express 路由中,这对我来说没有多大意义。我想做的是有某种工作流程,当 Express 呈现路由时,EJS 模板和 HTML 正确地获取捆绑的 JS 和 CSS。
值得一提的是,我并不想做捆绑的服务器端 JS。我正在尝试捆绑前端资产,并让 Express 提供使用这些捆绑文件的 EJS 构建的 HTML。
在这方面有任何帮助真的很棒,在此先感谢。
解决方案
推荐阅读
- python - assertLog 未捕获日志记录
- python - MongoEngine fieldDoesNotExist 错误,但实际上是
- reactjs - 如何在 ReactJs 卡中包含 s3image
- xcode - XCode - 如何重置/“删除”从 XCode 运行的 mac os 应用程序(类似于在 ios 模拟器中删除应用程序)?
- angular - Angular 上的 resizeSensor Amcharts
- python - 运行python脚本时出现gunicorn错误
- optaplanner - Optaplanner:如何调整 NurseRosteringPanel 列的大小?
- android - Android Studio 4.1 模拟器崩溃
- database - 在数据库中搜索 - Sqlite Flutter
- sass - 在 nextjs 上使用 scss 进行样式设置不适用于 .active