npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vite-plugin-vsconsole

v0.0.6

Published

vite plugin vsconsole

Readme

vite-plugin-vsconsole

vite plugin for vsconsole

一个适用于Vite2+的插件,帮助开发者在各个环境下方便使用VConsole的功能。可以方便配置区分环境,根据环境动态加载VConsole,支持多页面配置。

安装 (yarn or npm)

node version: >=12.0.0

vite version: >=2.0.0

yarn add vconsole
# or
npm i  vconsole -S
yarn add vite-plugin-vsconsole -D
# or
npm i vite-plugin-vsconsole -D

示例

cd ./example

npm  install

npm dev

使用

vite.config.ts 配置

  • Vue 简单配置
// tips: 如果引用path提示不存在,可以引入@types/node包
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { viteVSConsole } from 'vite-plugin-vsconsole';
import * as path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    viteVSConsole({
      entry: path.resolve('src/main.ts'), // 或者可以使用这个配置: [path.resolve('src/main.ts')]
      enabled: true, // 可自行结合 mode 和 command 进行判断
      config: {
        log: {
          maxLogNumber: 1000
        },
        theme: 'dark'
      }
    })
  ]
});
  • Vue 多页面简单配置
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import vsconsole from 'vite-plugin-vsconsole';
import * as path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vsconsole({
      entry: [path.resolve('src/main.ts')], // 每个页面的入口文件,和上面不一样的地方,这里是一个数组
      enabled: true, // 可自行结合 mode 和 command 进行判断
      config: {
        log: {
          maxLogNumber: 1000
        },
        theme: 'dark'
      }
    })
  ]
});
  • React 简单配置
import { defineConfig } from 'vite';
import reactRefresh from '@vitejs/plugin-react-refresh';
import vsconsole from 'vite-plugin-vsconsole';
import * as path from 'path';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    reactRefresh(),
    vsconsole({
      entry: path.resolve('src/main.tsx'),
      enabled: true, // 可自行结合 mode 和 command 进行判断
      config: {
        log: {
          maxLogNumber: 1000,
        },
        theme: 'dark'
      }
    })
  ]
});
  • 区分开发环境和生产打包环境
// 你可以使用 command / mode 来区分是否使用
import { UserConfigExport, ConfigEnv } from 'vite';
import vsconsole from 'vite-plugin-vsconsole';
import vue from '@vitejs/plugin-vue';
import * as path from 'path'

export default ({ command, mode }: ConfigEnv): UserConfigExport => {
  return {
    plugins: [
      vue(),
      vsconsole({
        entry: [path.resolve('src/main.ts')], // 入口文件
        enabled: command !== 'serve' || mode === 'test', // 打包环境下/发布测试包
        config: { // vconsole 配置项
          maxLogNumber: 1000,
          theme: 'light'
        }
      })
    ],
  };
};
  • 自定义vsconsole插件
viteVSConsole({
  entry: path.resolve('src/main.ts'),
  enabled: true,
  config: {
    theme: 'dark',
    onReady() {
      console.log(23333);
    }
  },
  plugin: [
    {
      id: 'my_plugin',
      name: 'MyPlugin',
      event: [
        {
          eventName: 'init',
          callback: function () {
            console.log('My plugin init');
          }
        },
        {
          eventName: 'renderTab',
          callback: function () {
            console.log('My plugin renderTab');
          }
        }
      ]
    },
    {
      id: 'my_plugin2',
      name: 'MyPlugin2',
      event: [
        {
          eventName: 'init',
          callback: function () {
            console.log('My plugin2 init');
          }
        },
        {
          eventName: 'renderTab',
          callback: function () {
            console.log('My plugin2 renderTab');
          }
        }
      ]
    }
  ]
});
  • 自定义规则使其触发销毁
// 需求: 在pc电脑端调试的时候,不希望有vconsole,因为vconsole会拦截console的log信息,不便于定位代码
// customHide: 一段可运行代码段,用于出发在浏览器端的一些api
viteVSConsole({
  entry: path.resolve('src/main.ts'),
  enabled: true,
  customHide: `/chrome\\/([\\d\\.]+)/.test(navigator.userAgent.toLowerCase())`,
  config: {
    theme: 'dark',
    onReady() {
      console.log(23333);
    }
  }
});

配置

entry

type: string | string[]

require:

必须提供,支持多入口。

enabled

type: boolean

default: true

全局属性, 是由本属性开启时, 其他的差异化功能才会有用

cacheKey

type: string

default: vconsole:enable:id

底层使用sessionStorage存储, 默认的key值, 你可以通过这个属性来修改, 作用: 如在生成环境下, 可以通过隐藏位置触发特定条件来设置缓存key值, 从而实现动态加载VConsole

config

type: VConsoleOptions

default: {}

vconsole 配置项

customHide

type:string | boolean

default: false

plugin

type: Object

{
  id: string;
  name: string;
  event: {
    eventName: string;
    callback: (data?: any) => void;
  }[];
}[];

Typescript

添加 vconsole 的引用

/// <reference types="vconsole" />

License

MIT