Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kejunmao/vite-plugin-conditional-compile
Conditional compilation syntax based on environment variables for Vite. Vite 下基于环境变量的条件编译
https://github.com/kejunmao/vite-plugin-conditional-compile
compiler conditional vite
Last synced: 24 days ago
JSON representation
Conditional compilation syntax based on environment variables for Vite. Vite 下基于环境变量的条件编译
- Host: GitHub
- URL: https://github.com/kejunmao/vite-plugin-conditional-compile
- Owner: KeJunMao
- License: mit
- Created: 2022-10-10T13:48:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-25T10:55:55.000Z (12 months ago)
- Last Synced: 2024-11-24T20:08:25.095Z (about 2 months ago)
- Topics: compiler, conditional, vite
- Language: TypeScript
- Homepage: https://github.com/KeJunMao/unplugin-preprocessor-directives
- Size: 276 KB
- Stars: 64
- Watchers: 3
- Forks: 7
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
vite-plugin-conditional-compiler
Conditional compilation syntax based on environment variables
English | [简体中文](./README.zh-CN.md)
> **Important**
> From v0.2.0, this plugin is essentially an wrapper of [unplugin-preprocessor-directives](https://github.com/KeJunMao/unplugin-preprocessor-directives).## Installation
```
pnpm i -D vite-plugin-conditional-compiler
```## Usage
```ts
// vite.config.ts
import { defineConfig } from "vite";
import ConditionalCompile from "vite-plugin-conditional-compiler";export default defineConfig({
plugins: [ConditionalCompile()],
});
```## Syntax
Start with `#v-ifdef`, then append `%ENV%`, end with `#v-endif`, you can also use `#v-elif` and `#v-else`.
- `#v-ifdef`: if defined
- `%ENV%` Vite environment variables> **Warning**
> The `#v-ifndef` is deprecated in the v0.2.0 version## Configuration
```ts
export interface Options {
/**
* @default ["**/*"]
*/
include: FilterPattern;
/**
* @default []
*/
exclude: FilterPattern;
}
```## Examples
```js
// Compile in production environment only
// #v-ifdef PROD
value = 1;
// #v-endif
``````js
// Condition or, not supported &&
// Compile in production or development
// #v-ifdef PROD||DEV
value = 1;
// #v-endif
``````js
// Allow custom environment variables
// Compile only when 'VITE_MY_ENV' exists and is not false
// #v-ifdef VITE_MY_ENV
value = 1;
// #v-endif
``````js
// Allow specified values
// Compile only when 'VITE_MY_ENV' exists and is not equal to hi
// #v-ifdef VITE_MY_ENV!='hi'
value = 1;
// #v-endif
```## Other
With the better-comments plugin in VsCode, syntax can be highlighted
```json
{
"tag": "#v",
"color": "#fff",
"strikethrough": false,
"underline": false,
"backgroundColor": "#0000ff",
"bold": true,
"italic": false
}
```