Move option out of experimental
This commit is contained in:
@@ -147,12 +147,8 @@ export async function resolveConfig(
|
||||
{},
|
||||
);
|
||||
|
||||
const experimental = defu(mergedConfig.experimental, {
|
||||
extensionApi: 'webextension-polyfill' as const,
|
||||
entrypointImporter: 'jiti' as const,
|
||||
});
|
||||
|
||||
if (experimental.extensionApi === 'chrome') {
|
||||
const extensionApi = mergedConfig.extensionApi ?? 'webextension-polyfill';
|
||||
if (extensionApi === 'chrome') {
|
||||
await ensureDependencyInstalled('@types/chrome', {
|
||||
dev: true,
|
||||
});
|
||||
@@ -167,7 +163,13 @@ export async function resolveConfig(
|
||||
filterEntrypoints,
|
||||
env,
|
||||
fsCache: createFsCache(wxtDir),
|
||||
imports: await getUnimportOptions(wxtDir, srcDir, logger, mergedConfig),
|
||||
imports: await getUnimportOptions(
|
||||
wxtDir,
|
||||
srcDir,
|
||||
logger,
|
||||
extensionApi,
|
||||
mergedConfig,
|
||||
),
|
||||
logger,
|
||||
manifest: await resolveManifestConfig(env, mergedConfig.manifest),
|
||||
manifestVersion,
|
||||
@@ -186,7 +188,10 @@ export async function resolveConfig(
|
||||
analysis: resolveAnalysisConfig(root, mergedConfig),
|
||||
userConfigMetadata: userConfigMetadata ?? {},
|
||||
alias,
|
||||
experimental,
|
||||
extensionApi,
|
||||
experimental: defu(mergedConfig.experimental, {
|
||||
entrypointImporter: 'jiti' as const,
|
||||
}),
|
||||
dev: {
|
||||
server: devServerConfig,
|
||||
reloadCommand,
|
||||
@@ -315,6 +320,7 @@ async function getUnimportOptions(
|
||||
wxtDir: string,
|
||||
srcDir: string,
|
||||
logger: Logger,
|
||||
extensionApi: ResolvedConfig['extensionApi'],
|
||||
config: InlineConfig,
|
||||
): Promise<WxtResolvedUnimportOptions | false> {
|
||||
if (config.imports === false) return false;
|
||||
@@ -335,9 +341,7 @@ async function getUnimportOptions(
|
||||
},
|
||||
{
|
||||
package:
|
||||
config.experimental?.extensionApi === 'chrome'
|
||||
? 'wxt/browser/chrome'
|
||||
: 'wxt/browser',
|
||||
extensionApi === 'chrome' ? 'wxt/browser/chrome' : 'wxt/browser',
|
||||
},
|
||||
{ package: 'wxt/sandbox' },
|
||||
{ package: 'wxt/storage' },
|
||||
|
||||
@@ -296,8 +296,8 @@ export const fakeResolvedConfig = fakeObjectCreator<ResolvedConfig>(() => {
|
||||
transformManifest: () => {},
|
||||
userConfigMetadata: {},
|
||||
alias: {},
|
||||
extensionApi: 'webextension-polyfill',
|
||||
experimental: {
|
||||
extensionApi: 'webextension-polyfill',
|
||||
entrypointImporter: 'jiti',
|
||||
},
|
||||
dev: {
|
||||
|
||||
@@ -292,17 +292,19 @@ export interface InlineConfig {
|
||||
* }
|
||||
*/
|
||||
alias?: Record<string, string>;
|
||||
/**
|
||||
* Which extension API to use.
|
||||
*
|
||||
* - `"webextension-polyfill"`: Use `browser` and types from [`webextension-polyfill`](https://www.npmjs.com/package/webextension-polyfill)
|
||||
* - `"chrome"` (experimental): Use the vanilla `browser`/`chrome` globals provided by the browser without any polyfills. Types provided by [`@types/chrome`](https://www.npmjs.com/package/@types/chrome), make sure to install the package or types won't work.
|
||||
*
|
||||
* @default "webextension-polyfill"
|
||||
*/
|
||||
extensionApi?: 'webextension-polyfill' | 'chrome';
|
||||
/**
|
||||
* Experimental settings - use with caution.
|
||||
*/
|
||||
experimental?: {
|
||||
/**
|
||||
* Which extension API to use. To switch to `"chrome"`, make sure to
|
||||
* install the `@types/chrome` package.
|
||||
*
|
||||
* @default "webextension-polyfill"
|
||||
*/
|
||||
extensionApi?: 'webextension-polyfill' | 'chrome';
|
||||
/**
|
||||
* Method used to import entrypoint files during the build process to extract their options.
|
||||
*
|
||||
@@ -1189,8 +1191,8 @@ export interface ResolvedConfig {
|
||||
* Import aliases to absolute paths.
|
||||
*/
|
||||
alias: Record<string, string>;
|
||||
extensionApi: 'webextension-polyfill' | 'chrome';
|
||||
experimental: {
|
||||
extensionApi: 'webextension-polyfill' | 'chrome';
|
||||
entrypointImporter: 'jiti' | 'vite-runtime' | 'vite-node';
|
||||
};
|
||||
dev: {
|
||||
|
||||
Generated
+1
-4
@@ -380,9 +380,6 @@ importers:
|
||||
specifier: ^18.3.1
|
||||
version: 18.3.1(react@18.3.1)
|
||||
devDependencies:
|
||||
'@types/chrome':
|
||||
specifier: ^0.0.268
|
||||
version: 0.0.268
|
||||
'@types/react':
|
||||
specifier: ^18.3.3
|
||||
version: 18.3.3
|
||||
@@ -7266,7 +7263,7 @@ packages:
|
||||
peerDependencies:
|
||||
vite: ^4.0.0 || ^5.0.0
|
||||
dependencies:
|
||||
vite: 5.3.4(sass@1.77.8)
|
||||
vite: 5.3.4(@types/node@20.14.11)
|
||||
dev: true
|
||||
|
||||
/vitest@2.0.3:
|
||||
|
||||
Reference in New Issue
Block a user