๐ Modules
Miniflare supports both the traditional service-worker and the newer modules formats for writing workers. To use the modules format, enable it with:
const mf = new Miniflare({ modules: true,});You can then use modules worker scripts like the following:
export default { async fetch(request, env, ctx) { // - `request` is the incoming `Request` instance // - `env` contains bindings, KV namespaces, Durable Objects, etc // - `ctx` contains `waitUntil` and `passThroughOnException` methods return new Response("Hello Miniflare!"); }, async scheduled(controller, env, ctx) { // - `controller` contains `scheduledTime` and `cron` properties // - `env` contains bindings, KV namespaces, Durable Objects, etc // - `ctx` contains the `waitUntil` method console.log("Doing something scheduled..."); },};Miniflare supports all module types: ESModule, CommonJS, Text, Data and
CompiledWasm. You can specify additional module resolution rules as follows:
const mf = new Miniflare({ modulesRules: [ { type: "ESModule", include: ["**/*.js"], fallthrough: true }, { type: "Text", include: ["**/*.txt"] }, ],});The following rules are automatically added to the end of your modules rules
list. You can override them by specifying rules matching the same globs:
[ { type: "ESModule", include: ["**/*.mjs"] }, { type: "CommonJS", include: ["**/*.js", "**/*.cjs"] },];Was this helpful?
- Resources
- API
- New to Cloudflare?
- Directory
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- ยฉ 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark