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
}
}
}
(您还可以指定要包含的模块的“白名单”)。
我有一个简单的 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
}
}
}
(您还可以指定要包含的模块的“白名单”)。