Create a Production Build
To create a production bundle for distribution, run:
pnpm build
# OR
npm run build
Generating a zip bundle
To create a production zip bundle ready to be uploaded to the web stores, use the package
command:
pnpm package
# OR
npm run package
If you would like to combine the building and packaging process, use the --zip
flag with the build
command instead:
pnpm build --zip
# OR
npm run build -- --zip
With a specific target
The build
command accepts a --target
flag. Use it to specify a browser and manifest version combination to build for:
plasmo build --target=firefox-mv2
The final bundle will be available in the build/firefox-mv2-prod
directory.
For a list of officially supported targets, visit this link.
With a custom tag
Plasmo uses the prod
tag for your production build. You can use the --tag
flag to change this behavior:
plasmo build --tag=staging
The command above will:
- Create the bundle in the
build/chrome-mv3-staging
directory - Set the
process.env.PLASMO_TAG
environment variables tostaging
- Parse and prioritize
.env.staging
or.env.staging.local
if any exist
With source maps
By default, Plasmo does not generate source maps for your production bundle. However, you can use the --source-maps
flag to change this behavior:
plasmo build --source-maps
Bundle Buddy
If you'd like to analyze your bundle, you can use the --bundle-buddy
flag, combined with --source-maps
to generate a Bundle Buddy (opens in a new tab) report:
plasmo build --source-maps --bundle-buddy
Optimization
These flags may cause your extension to not be accepted by the browser vendor's web stores such as Chrome and Edge.
To create an import-optimized build where the bundle deduplicate and hoist your dependency to the top of the bundle:
plasmo build --hoist
To create a bundle with obscured, minified, and potentially optimized code:
plasmo build --minify
You may combine these flags as needed.