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-condition-compile

v1.0.0

Published

基于注释指令的条件编译 Vite 插件,类似 `#if` / `#else` / `#endif` 的预处理模式。

Readme

vite-plugin-condition-compile

基于注释指令的条件编译 Vite 插件,类似 #if / #else / #endif 的预处理模式。

安装

npm install vite-plugin-condition-compile

使用

// vite.config.ts
import { conditionCompile } from 'vite-plugin-condition-compile'

export default defineConfig({
  plugins: [
    conditionCompile({
      conditions: { DEBUG: true, VERSION: '2.0' },
      exts: ['vue', 'js', 'ts', 'jsx', 'tsx'],
      errorPass: false,
    }),
  ],
})

配置

type Config = {
  conditions: Record<string, boolean>  // 条件定义
  exts: string[]                       // 处理的文件扩展名
  errorPass: boolean                   // true=跳过错误继续编译, false=抛出错误终止
}

指令语法

// @if DEBUG
console.log('仅在 DEBUG 模式下编译')
// @endif

// @if FEATURE_A
console.log('FEATURE_A 启用')
// @else
console.log('FEATURE_A 未启用')
// @endif

| 指令 | 说明 | |---|---| | // @if <条件> | 开启条件块,条件匹配则保留代码 | | // @else | 可选,条件不匹配时保留此分支 | | // @endif | 关闭条件块 |

规则

  • 指令必须写在 // 注释中,@if 后跟条件名
  • 不支持嵌套 @if
  • 一个 @if 块内最多一个 @else
  • 严格模式下(errorPass: false):
    • 未定义的条件名 → 报错
    • @else / @endif 前缺少 @if → 报错
    • 重复 @else → 报错
    • 格式错误的指令 → 报错
    • 文件末尾未关闭的块 → 报错
  • 宽松模式下(errorPass: true):遇到错误静默跳过,尽量输出结果

示例

// @if DEBUG
console.log('debug:', data)
// @endif

// @if PLATFORM_WX
const api = wx.request
// @else
const api = fetch
// @endif

条件 { DEBUG: false, PLATFORM_WX: true } 编译结果:

const api = wx.request