Skip to content

Commit 2f921d0

Browse files
Tensai75aklinker1
andcommitted
feat!: add {{modeSuffix}} to zip templates and update defaults (#1623)
Co-authored-by: Aaron <aaronklinker1@gmail.com>
1 parent c2dec31 commit 2f921d0

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

packages/wxt/e2e/tests/zip.test.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,21 +77,23 @@ describe('Zipping', () => {
7777
it('should correctly apply template variables for zip file names based on provided config', async () => {
7878
const project = new TestProject({
7979
name: 'test',
80-
version: '1.0.0',
80+
version: '1.0.0-beta.1',
8181
});
8282
project.addFile(
8383
'entrypoints/background.ts',
8484
'export default defineBackground(() => {});',
8585
);
86-
const artifactZip = '.output/test-1.0.0-firefox-development.zip';
87-
const sourcesZip = '.output/test-1.0.0-development-sources.zip';
86+
const artifactZip = '.output/test-1.0.0-beta.1-firefox-dev.zip';
87+
const sourcesZip = '.output/test-1.0.0-beta.1-sources-dev.zip';
8888

8989
await project.zip({
9090
browser: 'firefox',
9191
mode: 'development',
9292
zip: {
93-
artifactTemplate: '{{name}}-{{version}}-{{browser}}-{{mode}}.zip',
94-
sourcesTemplate: '{{name}}-{{version}}-{{mode}}-sources.zip',
93+
artifactTemplate:
94+
'{{name}}-{{packageVersion}}-{{browser}}{{modeSuffix}}.zip',
95+
sourcesTemplate:
96+
'{{name}}-{{packageVersion}}-sources{{modeSuffix}}.zip',
9597
},
9698
});
9799

packages/wxt/src/core/resolve-config.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,9 @@ function resolveZipConfig(
297297
const downloadedPackagesDir = path.resolve(root, '.wxt/local_modules');
298298
return {
299299
name: undefined,
300-
sourcesTemplate: '{{name}}-{{version}}-sources.zip',
301-
artifactTemplate: '{{name}}-{{version}}-{{browser}}.zip',
300+
sourcesTemplate: '{{name}}-{{packageVersion}}-sources{{modeSuffix}}.zip',
301+
artifactTemplate:
302+
'{{name}}-{{packageVersion}}-{{browser}}{{modeSuffix}}.zip',
302303
sourcesRoot: root,
303304
includeSources: [],
304305
compressionLevel: 9,

packages/wxt/src/core/zip.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ export async function zip(config?: InlineConfig): Promise<string[]> {
3030
const projectName =
3131
wxt.config.zip.name ??
3232
safeFilename(packageJson?.name || path.basename(process.cwd()));
33+
const modeSuffixes: Record<string, string | undefined> = {
34+
production: '',
35+
development: '-dev',
36+
};
37+
const modeSuffix = modeSuffixes[wxt.config.mode] ?? `-${wxt.config.mode}`;
3338
const applyTemplate = (template: string): string =>
3439
template
3540
.replaceAll('{{name}}', projectName)
@@ -39,6 +44,7 @@ export async function zip(config?: InlineConfig): Promise<string[]> {
3944
output.manifest.version_name ?? output.manifest.version,
4045
)
4146
.replaceAll('{{packageVersion}}', packageJson?.version)
47+
.replaceAll('{{modeSuffix}}', modeSuffix)
4248
.replaceAll('{{mode}}', wxt.config.mode)
4349
.replaceAll('{{manifestVersion}}', `mv${wxt.config.manifestVersion}`);
4450

packages/wxt/src/types.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,10 @@ export interface InlineConfig {
150150
* - <span v-pre>`{{packageVersion}}`</span> - The version from the package.json
151151
* - <span v-pre>`{{browser}}`</span> - The target browser from the `--browser` CLI flag
152152
* - <span v-pre>`{{mode}}`</span> - The current mode
153+
* - <span v-pre>`{{modeSuffix}}`</span>: A suffix based on the mode ('-dev' for development, '' for production)
153154
* - <span v-pre>`{{manifestVersion}}`</span> - Either "2" or "3"
154155
*
155-
* @default "{{name}}-{{version}}-{{browser}}.zip"
156+
* @default "{{name}}-{{packageVersion}}-{{browser}}{{modeSuffix}}.zip"
156157
*/
157158
artifactTemplate?: string;
158159
/**
@@ -175,9 +176,10 @@ export interface InlineConfig {
175176
* - <span v-pre>`{{packageVersion}}`</span> - The version from the package.json
176177
* - <span v-pre>`{{browser}}`</span> - The target browser from the `--browser` CLI flag
177178
* - <span v-pre>`{{mode}}`</span> - The current mode
179+
* - <span v-pre>`{{modeSuffix}}`</span>: A suffix based on the mode ('-dev' for development, '' for production)
178180
* - <span v-pre>`{{manifestVersion}}`</span> - Either "2" or "3"
179181
*
180-
* @default "{{name}}-{{version}}-sources.zip"
182+
* @default "{{name}}-{{packageVersion}}-sources{{modeSuffix}}.zip"
181183
*/
182184
sourcesTemplate?: string;
183185
/**

0 commit comments

Comments
 (0)