Generate a bundle that runs as a Cloudflare worker, then upload it to Cloudflare.
The bundle is minified by default.
const { bundleWorker } = require('cloudflare-bundler')
// Bundle the worker, then upload to Cloudflare.
const worker = await bundleWorker({
main: 'workers/foo.ts',
upload: true,
})
// Write the sourcemap.
const fs = require('fs')
fs.writeFileSync(
'workers/foo.js.map',
JSON.stringify(worker.map)
)
yarn add -D cloudflare-bundler
-
main?: string
The entry module in JavaScript or TypeScript. -
root?: string
The root directory of the worker.This option is useful when your worker has its own
package.json
andworker.toml
files. Themain
option is inferred from itspackage.json
file, and theupload
option is inferred from itsworker.toml
file.If
main
is undefined, this option is required. -
plugins?: RollupPlugin[]
Custom plugins to apply after the default plugins (but before minifying). -
serveGlobs?: string[] | { [root: string]: string[] }
Matching files are bundled with the script. Use theserve
function (exported by this plugin) in your script to easily serve the bundled content with the proper response headers (ETag
,Content-Type
,Content-Length
).When an array is passed, the globs are relative to the
root
option (or the working directory ifroot
is undefined). -
minify?: object | boolean
Customize how the script is minified, or passfalse
to disable minification. -
minifyHtml?: object | boolean
Customize how inlined.html
modules are minified, or passfalse
to disable. -
upload?: UploadConfig
When defined, the worker is uploaded after a successful build.The
UploadConfig
type contains these values:scriptId: string
(any name you like)accountId: string
(found on the homepage of your Cloudflare account)authToken?: string
(defaults toprocess.env.CLOUDFLARE_AUTH_TOKEN
)