Skip to content

Commit 30b8ba4

Browse files
authored
fix: Ignore manifest.manifest_version option and warn about incorrect usage (#1419)
1 parent 5775c9c commit 30b8ba4

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

packages/wxt/src/core/utils/__tests__/manifest.test.ts

+28
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
OutputAsset,
2222
} from '../../../types';
2323
import { wxt } from '../../wxt';
24+
import { mock } from 'vitest-mock-extended';
2425

2526
const outDir = '/output';
2627
const contentScriptOutDir = '/output/content-scripts';
@@ -1646,6 +1647,33 @@ describe('Manifest Utils', () => {
16461647
expect(manifest.sidebar_action).toBeUndefined();
16471648
expect(manifest.content_scripts).toBeUndefined();
16481649
});
1650+
1651+
describe('manifest_version', () => {
1652+
it('should ignore and log a warning when someone sets `manifest_version` inside the manifest', async () => {
1653+
const buildOutput = fakeBuildOutput();
1654+
const expectedVersion = 2;
1655+
setFakeWxt({
1656+
logger: mock(),
1657+
config: {
1658+
command: 'build',
1659+
manifestVersion: expectedVersion,
1660+
manifest: {
1661+
manifest_version: 3,
1662+
},
1663+
},
1664+
});
1665+
1666+
const { manifest } = await generateManifest([], buildOutput);
1667+
1668+
expect(manifest.manifest_version).toBe(expectedVersion);
1669+
expect(wxt.logger.warn).toBeCalledTimes(1);
1670+
expect(wxt.logger.warn).toBeCalledWith(
1671+
expect.stringContaining(
1672+
'`manifest.manifest_version` config was set, but ignored',
1673+
),
1674+
);
1675+
});
1676+
});
16491677
});
16501678

16511679
describe('stripPathFromMatchPattern', () => {

packages/wxt/src/core/utils/manifest.ts

+6
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ export async function generateManifest(
7676
icons: discoverIcons(buildOutput),
7777
};
7878
const userManifest = wxt.config.manifest;
79+
if (userManifest.manifest_version) {
80+
delete userManifest.manifest_version;
81+
wxt.logger.warn(
82+
'`manifest.manifest_version` config was set, but ignored. To change the target manifest version, use the `manifestVersion` option or the `--mv2`/`--mv3` CLI flags.\nSee https://wxt.dev/guide/essentials/target-different-browsers.html#target-a-manifest-version',
83+
);
84+
}
7985

8086
let manifest = defu(
8187
userManifest,

0 commit comments

Comments
 (0)