MobileFirstLLC / extension-cli

Command line tool for building extensions/add-ons for chromium based browsers.
https://oss.mobilefirst.me/extension-cli
MIT License
172 stars 25 forks source link

Support for using different xtbuild config for firefox and chrome #196

Open danny-does-stuff opened 1 year ago

danny-does-stuff commented 1 year ago

Is your feature request related to a problem? Please describe. I would like to be able to define different behavior for a chrome release vs a firefox release. For example, I would like to be able to have a different release name for my chrome and firefox releases.

Describe the solution you'd like I would like to be able to add a "firefox" and/or "chrome" key to the .xtbuild.json file or xt-build config in package.json with different values for the configuration options. My config would then look like this

{
    "manifest": "./src/extension/manifest.json",
    "js_bundles": [
        {
            "src": "./src/extension/background.js",
            "name": "background",
        },
        {
            "src": [
                "./src/extension/file1",
                "./src/extension/file2",
                "./src/extension/file3"
            ],
            "name": "bundle2",
        }
    ],
    "firefox": {
        "release_name": "release_firefox"
    }
}

which would change the release name when releasing for firefox

Describe alternatives you've considered Another way to achieve this would be to allow overriding config options on the command line, e.g. xt-build -e prod -p firefox --release_name=release_firefox. I would imagine that this solution would be harder to implement, and less robust

Thanks for the awesome project!

galori commented 3 weeks ago

Just ran into the same issue - I managed to get this working by adding a file with overrides like

xt-build-firefox.json:

{
  "release_name": "release-firefox"
}

and then building with

 npx xt-build -e prod -p firefox -c xt-build-firefox.json