I'm trying to migrate my browser extension (that I expect to work on Chrome and Firefox) from manifest v2 to v3.
However, I am getting conflicting information about the background section. I did lots of research on google and stack overflow, and no one seems to agree on anything. Also, most information seems to be outdated. Of the best sources I found, lots of places mention that it should be migrated to service_worker (example), but it seems that Firefox should still use scripts instead (source).
But no matter what I do, I am getting errors. If I only use service worker:
"background": {
    "type": "module", // tried both with and without this option
    "service_worker": "background.ts"
}
The the build command from parcel is happy (seems to use parcel/transformer-webextension underneath), but web-ext fails catastrophically:
WebExtError: installTemporaryAddon: Error:
Error: Could not install add-on at '...':
Error: background.service_worker is currently disabled
Even if I provide the flag --firefox-preview which was supposed to fix this.
Which kinda makes sense, this well-written tutorial claims that Firefox is keeping using scripts for V3, just deprecating the persisent flag (which you can remove or set to false). That is fine, as I wasn't using that anyway.
"background": {
    "scripts": ["background.ts"],
    "persistent": false // `persistent` must either be false or omited; I tried both
}
In fact that is exactly how the official Firefox docs claim V3 should support.
But parcel complains that ^^^ Missing property service\_worker:
Ok, so let's try both:
"background": {
    "type": "module",
    "service_worker": "background.ts",
    "scripts": ["background.ts"]
},
But parcel is not happy, with Invalid Web Extension manifest:
So no matter what I try, I can't get both parcel and web-ext to be happy at the same time.
It seems that Chrome wants one thing, and Firefox wants another, but no matter what I try, I can't even run my extension on neither browser. So not only it seems I can't have a V3 extension for both browsers - I cannot have a V3 extension at all if I want to use both parcel and web-ext (which is indispensable afaik).
I am particularly concerned because according to official chrome sources, Manifest V3 is a "prerequisite for the Featured badge" starting of now, and V2 will be removed by June.
So if I am already penalized for not using V3 now, and have less than 6 months to figure out how to, while none of the available tooling seems to support this version yet? I must be missing something...
Notes: these are the commands I am using to run parcel and web-ext:
        "watch": "parcel watch src/manifest.json --dist-dir distribution --no-cache --no-hmr",
        "start": "web-ext run --firefox-preview"
And these are the versions I am using, both the latest on NPM
        "parcel": "^2.8.2",
        "web-ext": "^7.4.0",


 
     
    