为什么使用 ESBuild 进行转译不适用于我的express + ejs 应用程序?

问题描述 投票:0回答:1

我有以下文件结构

.
├── package.json
├── public
│   ├── fonts
│   │   └── AppleColorEmoji.ttf
│   └── images
│       ├── favicon.ico
│       └── ico.svg
├── src
│   ├── application.js
│   ├── controllers
│   │   ├── event.controller.js
│   │   └── user.controller.js
│   ├── database.js
│   ├── index.js
│   ├── middlewares
│   │   ├── auth.middleware.js
│   │   └── error.middleware.js
│   ├── models
│   │   ├── event.model.js
│   │   ├── token.model.js
│   │   └── user.model.js
│   ├── routers
│   │   ├── index.js
│   │   └── user.router.js
│   ├── services
│   │   ├── auth.service.js
│   │   └── event.service.js
│   └── views
│       ├── pages
│       │   ├── 404.ejs
│       │   ├── events.ejs
│       │   ├── index.ejs
│       │   ├── login.ejs
│       │   └── submit.ejs
│       └── partials
│           ├── footer.ejs
│           ├── head.ejs
│           └── header.ejs
└── yarn.lock

并尝试使用 esbuild 通过以下命令来发送此应用程序(express + ejs)

package.json

...
"build": "esbuild src/index.js --platform=node --bundle --minify --outfile=dist/index.js",
...

这会在

index.js
文件夹中生成单个文件
dist
。该程序运行,但是当我进行任何操作来查看视图时。它抛出 500 http 状态。你们知道如何解决这个问题吗?

javascript node.js ejs esbuild
1个回答
0
投票

我通过复制

views
内的
dist
文件夹修复了此问题。 我使用路径宏来假定当前工作目录,因此无论我移动文件到哪里,它都可以工作。它只需要视图文件夹。

我不知道为什么我认为 esbuild 也会转译 ejs 文件

© www.soinside.com 2019 - 2024. All rights reserved.