feat: Add --debug flag for printing debug logs for all CLI commands (#75)
This commit is contained in:
@@ -10,6 +10,7 @@ export const build = defineCommand<
|
||||
browser?: wxt.TargetBrowser;
|
||||
mv3?: boolean;
|
||||
mv2?: boolean;
|
||||
debug?: boolean;
|
||||
},
|
||||
]
|
||||
>(async (root, flags) => {
|
||||
@@ -20,6 +21,7 @@ export const build = defineCommand<
|
||||
browser: flags.browser,
|
||||
manifestVersion: flags.mv3 ? 3 : flags.mv2 ? 2 : undefined,
|
||||
configFile: flags.config,
|
||||
debug: flags.debug,
|
||||
};
|
||||
|
||||
await wxt.build(cliConfig);
|
||||
|
||||
@@ -10,6 +10,7 @@ export const dev = defineCommand<
|
||||
browser?: wxt.TargetBrowser;
|
||||
mv3?: boolean;
|
||||
mv2?: boolean;
|
||||
debug?: boolean;
|
||||
},
|
||||
]
|
||||
>(async (root, flags) => {
|
||||
@@ -20,6 +21,7 @@ export const dev = defineCommand<
|
||||
browser: flags.browser,
|
||||
manifestVersion: flags.mv3 ? 3 : flags.mv2 ? 2 : undefined,
|
||||
configFile: flags.config,
|
||||
debug: flags.debug,
|
||||
};
|
||||
|
||||
const server = await wxt.createServer(cliConfig);
|
||||
|
||||
@@ -9,7 +9,10 @@ import pc from 'picocolors';
|
||||
import { Formatter } from 'picocolors/types';
|
||||
|
||||
export const init = defineCommand<
|
||||
[directory: string | undefined, options: { template?: string; pm?: string }]
|
||||
[
|
||||
directory: string | undefined,
|
||||
options: { template?: string; pm?: string; debug?: boolean },
|
||||
]
|
||||
>(
|
||||
async (userDirectory, flags) => {
|
||||
consola.info('Initalizing new project');
|
||||
|
||||
@@ -9,12 +9,14 @@ export const prepare = defineCommand<
|
||||
root: string | undefined,
|
||||
flags: {
|
||||
config?: string;
|
||||
debug?: boolean;
|
||||
},
|
||||
]
|
||||
>(async (root, flags) => {
|
||||
const cliConfig: wxt.InlineConfig = {
|
||||
root,
|
||||
configFile: flags.config,
|
||||
debug: flags.debug,
|
||||
};
|
||||
const config = await getInternalConfig(cliConfig, 'build');
|
||||
|
||||
|
||||
@@ -2,7 +2,10 @@ import { consola } from 'consola';
|
||||
import { defineCommand } from '../utils/defineCommand';
|
||||
|
||||
export const publish = defineCommand(
|
||||
async (root: any, { config: configFile }: any) => {
|
||||
async (
|
||||
root: any,
|
||||
{ config: configFile, debug }: { config?: string; debug?: string },
|
||||
) => {
|
||||
consola.warn('wxt publish: Not implemented');
|
||||
},
|
||||
);
|
||||
|
||||
@@ -13,6 +13,7 @@ export const zip = defineCommand<
|
||||
browser?: wxt.TargetBrowser;
|
||||
mv3?: boolean;
|
||||
mv2?: boolean;
|
||||
debug?: boolean;
|
||||
},
|
||||
]
|
||||
>(async (root, flags) => {
|
||||
@@ -23,6 +24,7 @@ export const zip = defineCommand<
|
||||
browser: flags.browser,
|
||||
manifestVersion: flags.mv3 ? 3 : flags.mv2 ? 2 : undefined,
|
||||
configFile: flags.config,
|
||||
debug: flags.debug,
|
||||
};
|
||||
|
||||
const config = await getInternalConfig(cliConfig, 'build');
|
||||
|
||||
@@ -6,6 +6,8 @@ const cli = cac('wxt');
|
||||
cli.help();
|
||||
cli.version(version);
|
||||
|
||||
cli.option('--debug', 'enable debug mode');
|
||||
|
||||
// DEV
|
||||
cli
|
||||
.command('[root]', 'start dev server')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { consola } from 'consola';
|
||||
import { LogLevels, consola } from 'consola';
|
||||
import { printHeader } from '../../core/log/printHeader';
|
||||
import { formatDuration } from '../../core/utils/formatDuration';
|
||||
|
||||
@@ -9,6 +9,13 @@ export function defineCommand<TArgs extends any[]>(
|
||||
},
|
||||
) {
|
||||
return async (...args: TArgs) => {
|
||||
// Enable consola's debug mode globally at the start of all commands when the `--debug` flag is
|
||||
// passed
|
||||
const isDebug = !!args.find((arg) => arg?.debug);
|
||||
if (isDebug) {
|
||||
consola.level = LogLevels.debug;
|
||||
}
|
||||
|
||||
const startTime = Date.now();
|
||||
try {
|
||||
printHeader();
|
||||
|
||||
@@ -2,6 +2,7 @@ import * as vite from 'vite';
|
||||
import { Manifest, Scripting } from 'webextension-polyfill';
|
||||
import { UnimportOptions } from 'unimport';
|
||||
import { EntrypointGroup } from '.';
|
||||
import { LogLevel } from 'consola';
|
||||
|
||||
export interface InlineConfig {
|
||||
/**
|
||||
@@ -34,6 +35,12 @@ export interface InlineConfig {
|
||||
* @default "wxt.config.ts"
|
||||
*/
|
||||
configFile?: string | false;
|
||||
/**
|
||||
* Set to `true` to show debug logs. Overriden by the command line `--debug` option.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
debug?: boolean;
|
||||
/**
|
||||
* ID of the extension for each store. Used for publishing.
|
||||
*/
|
||||
@@ -218,6 +225,7 @@ export interface Logger {
|
||||
error(...args: any[]): void;
|
||||
fatal(...args: any[]): void;
|
||||
success(...args: any[]): void;
|
||||
level: LogLevel;
|
||||
}
|
||||
|
||||
export interface BaseEntrypoint {
|
||||
|
||||
@@ -20,6 +20,7 @@ export interface InternalConfig {
|
||||
entrypointsDir: string;
|
||||
outBaseDir: string;
|
||||
outDir: string;
|
||||
debug: boolean;
|
||||
storeIds: {
|
||||
chrome?: string;
|
||||
firefox?: string;
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
} from '../types';
|
||||
import path, { resolve } from 'node:path';
|
||||
import * as vite from 'vite';
|
||||
import { consola } from 'consola';
|
||||
import { LogLevels, consola } from 'consola';
|
||||
import * as plugins from '../vite-plugins';
|
||||
import { createFsCache } from './createFsCache';
|
||||
import { getGlobals } from './globals';
|
||||
@@ -33,6 +33,8 @@ export async function getInternalConfig(
|
||||
const outBaseDir = path.resolve(root, '.output');
|
||||
const outDir = path.resolve(outBaseDir, `${browser}-mv${manifestVersion}`);
|
||||
const logger = config.logger ?? consola;
|
||||
const debug = !!config.debug;
|
||||
if (debug) logger.level = LogLevels.debug;
|
||||
|
||||
const baseConfig: InternalConfigNoUserDirs = {
|
||||
root,
|
||||
@@ -43,6 +45,7 @@ export async function getInternalConfig(
|
||||
manifestVersion,
|
||||
mode,
|
||||
command,
|
||||
debug,
|
||||
logger,
|
||||
vite: config.vite ?? {},
|
||||
imports: config.imports ?? {},
|
||||
|
||||
@@ -33,7 +33,9 @@ export function multipageMove(
|
||||
(entry) => !!normalizePath(entry.inputPath).endsWith(oldBundlePath),
|
||||
);
|
||||
if (entrypoint == null) {
|
||||
config.logger.debug('No entrypoint found for', oldBundlePath);
|
||||
config.logger.debug(
|
||||
`No entrypoint found for ${oldBundlePath}, leaving in chunks directory`,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -212,6 +212,7 @@ export const fakeInternalConfig = fakeObjectCreator<InternalConfig>(() => ({
|
||||
runnerConfig: {
|
||||
config: {},
|
||||
},
|
||||
debug: faker.datatype.boolean(),
|
||||
srcDir: fakeDir(),
|
||||
storeIds: {},
|
||||
typesDir: fakeDir(),
|
||||
|
||||
Reference in New Issue
Block a user