ParcelJS 不捆绑导入的 js 库

ParcelJS does not bundle imported js library

我有一个简单的 NodeJS 应用程序(一个 Cloudflare Worker)。

在主要的打字稿文件 (index.ts) 中,我导入了处理程序模块,它的第一行是: const Monitor = import('ping-monitor')

ping-monitor 是 package.json 中的依赖项:

"dependencies": {
    "ping-monitor": "^0.6.2"
  }

现在当我 运行 parcel build src/index.ts 时,dist 中的输出有: var ZQrD$pingmonitor = require("ping-monitor");

因此 ping-monitor 的内容未正确捆绑。当我尝试通过 wrangler dev 在本地 运行 时(输出为 dist/worker.js),它会抱怨:Uncaught ReferenceError: require is not defined.

如何告诉 ParcelJS 在输出中捆绑 ping-monitor

默认情况下,parcel 不会为 nodejs 构建目标捆绑任何依赖项。如果你想捆绑所有依赖项,你可以使用 includeNodeModules 选项(参见 docs),像这样:

{
   ...
   "main": "dist/worker.js",
   "targets" {
      "main": {
         "includeNodeModules": true
      }
   }
}

(您还可以指定要包含的模块的“白名单”)。