无法在开发模式下使用 Parceljs 转译 ES6 Express 服务器

Unable to transpile ES6 express server using Parceljs in development mode

我正在尝试使用 Parceljs 转换 ES6 Express 应用程序。

尝试使用 yarn parcel index.js 运行 parcel 开发服务器显示它正在 运行ning 在 localhost:1234 但页面是空白的。它还会在尝试 运行 node dist/index.js:

时生成以下输出
index.js:116
    throw error;
    ^

TypeError: Cannot read properties of undefined (reading 'prototype')

运行 yarn parcel index.js --target node 不会产生任何本地主机端口供我测试 API。但是,API 现在可以工作了,因为我可以使用 node dist/index.js 来 运行 脚本,但现在我不得不求助于 npx nodemon /dist/index.js 来监视文件。

这是示例代码。 index.js

import express from "express";
const app = express();
const port = 5000;

app.get("/", (req, res) => {
  res.json({ msg: "Hello!" });
});

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`);
});

package.json

...
  "dependencies": {
    "express": "^4.17.3",
    "parcel": "^2.3.2",
    "parcel-bundler": "^1.12.5"
  }
...

我将非常感谢允许我使用 Parceljs 直接监视文件更新的解决方案,最好使用 HMR。

请参见issue 355: Is parcel meant to work with server-side code insluding HMR?:parcel(目前)不支持在 nodejs 中热模块重新加载。

parcel 创建一个网络服务器并为您的代码提供服务,但 express 需要自行调用才能创建网络服务器和服务器请求。 你最好使用 babel & nodemon 而不是 parcel

我使用下面的命令

nodemon --exec babel-node src/index.js