Skip to content

Commit eb048ff

Browse files
authored
fix: reduced logging (fixes #42) (#83)
* feat: add timestamp to log output; use kleur instead of chalk * reduce debug logs: only log when the hooks return something and make sure its on a single line * add changeset
1 parent 77007c1 commit eb048ff

File tree

6 files changed

+35
-44
lines changed

6 files changed

+35
-44
lines changed

.changeset/yellow-panthers-beg.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/vite-plugin-svelte': patch
3+
---
4+
5+
reduced debug output

packages/vite-plugin-svelte/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
"homepage": "https://github.com/sveltejs/vite-plugin-svelte/tree/main/packages/vite-plugin-svelte#readme",
4646
"dependencies": {
4747
"@rollup/pluginutils": "^4.1.0",
48-
"chalk": "^4.1.1",
4948
"debug": "^4.3.2",
49+
"kleur": "^4.1.4",
5050
"magic-string": "^0.25.7",
5151
"require-relative": "^0.8.7",
5252
"svelte-hmr": "^0.14.4"

packages/vite-plugin-svelte/src/handle-hot-update.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,18 @@ export async function handleHotUpdate(
5151
}
5252

5353
const result = [...affectedModules].filter(Boolean) as ModuleNode[];
54-
log.debug(`handleHotUpdate result for ${svelteRequest.id}`, result);
5554

5655
// TODO is this enough? see also: https://github.com/vitejs/vite/issues/2274
5756
const ssrModulesToInvalidate = result.filter((m) => !!m.ssrTransformResult);
5857
if (ssrModulesToInvalidate.length > 0) {
5958
log.debug(`invalidating modules ${ssrModulesToInvalidate.map((m) => m.id).join(', ')}`);
6059
ssrModulesToInvalidate.forEach((moduleNode) => server.moduleGraph.invalidateModule(moduleNode));
6160
}
62-
61+
if (result.length > 0) {
62+
log.debug(
63+
`handleHotUpdate for ${svelteRequest.id} result: ${result.map((m) => m.id).join(', ')}`
64+
);
65+
}
6366
return result;
6467
}
6568

packages/vite-plugin-svelte/src/index.ts

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
import fs from 'fs';
2-
import {
3-
HmrContext,
4-
IndexHtmlTransformContext,
5-
ModuleNode,
6-
Plugin,
7-
ResolvedConfig,
8-
UserConfig
9-
} from 'vite';
2+
import { HmrContext, ModuleNode, Plugin, ResolvedConfig, UserConfig } from 'vite';
103
import { handleHotUpdate } from './handle-hot-update';
114
import { log, logCompilerWarnings } from './utils/log';
125
import { CompileData, createCompileSvelte } from './utils/compile';
@@ -109,7 +102,6 @@ export function svelte(inlineOptions?: Partial<Options>): Plugin {
109102

110103
async resolveId(importee, importer, customOptions, ssr) {
111104
const svelteRequest = requestParser(importee, !!ssr);
112-
log.debug('resolveId', svelteRequest || importee);
113105
if (svelteRequest?.query.svelte) {
114106
if (svelteRequest.query.type === 'style') {
115107
// return cssId with root prefix so postcss pipeline of vite finds the directory correctly
@@ -164,7 +156,6 @@ export function svelte(inlineOptions?: Partial<Options>): Plugin {
164156
if (!svelteRequest) {
165157
return;
166158
}
167-
log.debug('transform', svelteRequest);
168159
const { filename, query } = svelteRequest;
169160

170161
if (query.svelte) {
@@ -193,18 +184,11 @@ export function svelte(inlineOptions?: Partial<Options>): Plugin {
193184
return;
194185
}
195186
const svelteRequest = requestParser(ctx.file, false, ctx.timestamp);
196-
if (!svelteRequest) {
197-
return;
187+
if (svelteRequest) {
188+
return handleHotUpdate(compileSvelte, ctx, svelteRequest, cache, options);
198189
}
199-
log.debug('handleHotUpdate', svelteRequest);
200-
return handleHotUpdate(compileSvelte, ctx, svelteRequest, cache, options);
201190
},
202191

203-
// eslint-disable-next-line no-unused-vars
204-
transformIndexHtml(html: string, ctx: IndexHtmlTransformContext) {
205-
// TODO useful for ssr? and maybe svelte:head stuff
206-
log.debug('transformIndexHtml', html);
207-
},
208192
/**
209193
* All resolutions done; display warnings wrt `package.json` access.
210194
*/

packages/vite-plugin-svelte/src/utils/log.ts

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable no-unused-vars */
2-
import chalk from 'chalk';
2+
import { cyan, yellow, red } from 'kleur/colors';
33
import debug from 'debug';
44
import { ResolvedOptions, Warning } from './options';
55

@@ -12,17 +12,17 @@ const loggers: { [key: string]: any } = {
1212
isDebug: true
1313
},
1414
info: {
15-
color: chalk.cyan,
15+
color: cyan,
1616
log: console.log,
1717
enabled: true
1818
},
1919
warn: {
20-
color: chalk.yellow,
20+
color: yellow,
2121
log: console.warn,
2222
enabled: true
2323
},
2424
error: {
25-
color: chalk.red,
25+
color: red,
2626
log: console.error,
2727
enabled: true
2828
},
@@ -47,26 +47,18 @@ function setLevel(level: string) {
4747
}
4848
}
4949

50-
let _viteLogOverwriteProtection = false;
51-
function setViteLogOverwriteProtection(viteLogOverwriteProtection: boolean) {
52-
_viteLogOverwriteProtection = viteLogOverwriteProtection;
53-
}
54-
5550
function _log(logger: any, message: string, payload?: any) {
5651
if (!logger.enabled) {
5752
return;
5853
}
5954
if (logger.isDebug) {
6055
payload !== undefined ? logger.log(message, payload) : logger.log(message);
6156
} else {
62-
logger.log(logger.color(`[${prefix}] ${message}`));
57+
logger.log(logger.color(`${new Date().toLocaleTimeString()} [${prefix}] ${message}`));
6358
if (payload) {
6459
logger.log(payload);
6560
}
6661
}
67-
if (_viteLogOverwriteProtection) {
68-
logger.log('');
69-
}
7062
}
7163

7264
export interface LogFn {
@@ -90,10 +82,7 @@ export const log = {
9082
info: createLogger('info'),
9183
warn: createLogger('warn'),
9284
error: createLogger('error'),
93-
setLevel,
94-
95-
// TODO still needed?
96-
setViteLogOverwriteProtection
85+
setLevel
9786
};
9887

9988
export function logCompilerWarnings(warnings: Warning[], options: ResolvedOptions) {

pnpm-lock.yaml

Lines changed: 15 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)