parcel-bundler / parcel

The zero configuration build tool for the web. 📦🚀
https://parceljs.org
MIT License
43.41k stars 2.26k forks source link

`parcel/config-webextension` can build extensions incompatible with Firefox's Add-Ons Store #9560

Open derenrich opened 7 months ago

derenrich commented 7 months ago

🐛 bug report

I am building a web extension at https://github.com/derenrich/wwwyzzerdd and I am using parcel to build it. The extension works in Chrome and FF but Mozilla will not allow me to upload the extension because some of the generated .js files are larger than 5MB.

See Mozilla's bug report at https://discourse.mozilla.org/t/bug-with-uploading-large-files-in-addon/85407/6

wwwyzzerdd ff error

🎛 Configuration (.babelrc, package.json, cli command)

{
  "extends": "@parcel/config-webextension",
  "transformers": {
    "*.{ts,tsx}": ["@parcel/transformer-typescript-tsc"]
  },
  "validators": {
    "*.{ts,tsx}": ["@parcel/validator-typescript"]
  }  
}
{
    "compilerOptions": {
        "allowSyntheticDefaultImports": true,
        "jsx": "react",
        "outDir": "./dist/",
        "sourceMap": true,
        "strict": true,
        "isolatedModules": true,
        "noImplicitReturns": true,
        "noImplicitAny": true,
        "module": "esnext",
        "moduleResolution": "node",
        "target": "esnext",
        "allowJs": true,
        "baseUrl": "./src",
        "paths": {
            "~*": ["./*"]
        },
        "types": ["chrome"]
    },
    "include": [
        "src/**/*"
    ]
}

🤔 Expected Behavior

Built extension should work on all browsers making files <5MB.

😯 Current Behavior

Dumps >5MB of data into a single file and fails to upload

💁 Possible Solution

To achieve this the extension should split the minimized js file across multiple 5MB files

🔦 Context

I upgraded my dependencies and then the extension's files grew above 5MB and now I can only deploy new versions to Chrome. Unsure how to split this up more.

💻 Code Sample

🌍 Your Environment

Software Version(s)
Parcel 2.8.2
Node v15.14.0
npm/Yarn yarn=1.22.10
Operating System ubuntu
derenrich commented 7 months ago

Ah. Passing --no-source-maps drastically reduces my build sizes. I guess that's the ticket though I guess maybe it should emit a warning when this happens? I'd also be fine just closing this.

PLtier commented 6 months ago

I have also arrived at the same conclusion to pass this argument. With source maps I get >100MB on my extension.

github-actions[bot] commented 4 hours ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs.