如何阻止Vite执行npm run dev时清除终端日志?
解决Vite启动时清空终端日志的问题
方法1:禁用Vite的清屏功能
修改package.json中的dev脚本,添加--no-clear-screen参数:
{ "scripts": { "dev": "vite --no-clear-screen" } }
执行npm run dev时,终端不会被清空,你在vite.config.js里用console.log打印的调试信息会保留在屏幕上。
方法2:将日志输出到文件
如果不想修改启动参数,可以直接把调试日志写入文件,避免被清屏影响:
在vite.config.js中引入fs模块,替换原有的console.log:
const fs = require('fs'); const path = require('path'); export default defineConfig(() => { // 你的动态配置逻辑 const debugData = { /* 你的调试数据 */ }; // 写入日志文件 fs.writeFileSync( path.resolve(__dirname, 'vite-debug.log'), JSON.stringify(debugData, null, 2) + '\n', { flag: 'a' } // 追加模式,避免覆盖旧日志 ); return { // Vite配置项 }; });
启动项目后,你可以用tail -f vite-debug.log(Linux/macOS)或者PowerShell的Get-Content vite-debug.log -Wait(Windows)实时查看日志内容。
方法3:临时延迟配置返回(仅调试用)
如果只是临时调试,不想修改脚本或日志方式,可以给配置函数加个短暂延迟,让日志有足够时间显示:
export default async defineConfig(() => { // 你的动态配置逻辑 const debugData = { /* 你的调试数据 */ }; console.log(debugData); // 延迟1秒再返回配置,确保日志已输出 await new Promise(resolve => setTimeout(resolve, 1000)); return { // Vite配置项 }; });
注意:这个方法会增加启动时间,正式环境记得移除延迟逻辑。
内容的提问来源于stack exchange,提问作者Big boy
相关产品推荐
相关产品推荐

