I have a simple NodeJS app (A Cloudflare Worker).
In the main typescript file (index.ts) I import the handler module which has this as the first line:
const Monitor = import('ping-monitor')
ping-monitor is a dependency in package.json:
"dependencies": {
"ping-monitor": "^0.6.2"
}
Now when I run parcel build src/index.ts the output in the dist has:
var $1ZQrD$pingmonitor = require("ping-monitor");
So the contents of ping-monitor are not bundled properly. And when I try to run this locally via wrangler dev (output is dist/worker.js) it complains: Uncaught ReferenceError: require is not defined.
How can I tell ParcelJS to bundle ping-monitor inside the output?
By default, parcel won't bundle any dependencies for nodejs build targets. If you want to bundle all dependencies you can use the includeNodeModules option (see docs), like this:
{
...
"main": "dist/worker.js",
"targets": {
"main": {
"includeNodeModules": true
}
}
}
(You can also specify "whitelist" of modules to include).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With