vite-plugin-prerelease
Version:
vite plugin prerelease
109 lines (104 loc) • 2.38 kB
text/typescript
import * as js_cookie from 'js-cookie';
import { ResolvedConfig } from 'vite';
interface PrereleaseWidgetOptions {
/**
* 挂载DOM
* @default document.body
*/
target?: string | HTMLElement;
/**
* 按钮悬浮
* @description false 则关闭悬浮
* @default
* ```js
* { offsetX: 8 }
* ```
*/
float?: {
offsetX?: number;
} | false;
/**
* 按钮默认位置
* @default
* ```js
* { x: 0, y: 0 }
* ```
*/
defaultPosition?: {
x?: number;
y?: number;
};
/**
* 预发布/非预发布组件文本
*/
text?: {
/**
* 预发布文本
*/
prerelease?: string;
/**
* 非预发布文本
*/
nonPrerelease?: string;
};
/**
* 小组件就绪时回调
*/
onReady?: () => void;
}
declare function resolveEnvFromConfig(config: ResolvedConfig, prereleaseEnv: string): {
prerelease: {
PRERELEASE: boolean;
MODE: string;
};
current: {
[x: string]: any;
};
};
type Options = {
/**
* 预发布插件类型
* @default 'runtime'
* @description
* runtime 动态修改环境变量,一个输出不同环境
* buildtime 构建预发布环境代码,多个输出多个环境
*/
mode?: 'runtime' | 'buildtime';
/**
* 入口文件
* 对于 csr 项目,入口通常是 src/main 或 app/main
* 对于 remix/rr7 项目,入口通常是 app/root
*
* 默认情况自动探测 ['src/main', 'src/root', 'app/main', 'app/root']
*/
entry?: string | RegExp;
/**
* 需要排除的环境变量,排除之后,环境变量不再被动态修改
*/
excludeEnvs?: string[];
/**
* 预发布环境名称
* @default 'production'
*/
prereleaseEnv?: string;
/**
* 预发布小组件配置
*/
prereleaseWidget?: PrereleaseWidgetOptions;
/**
* debug
* @internal
*/
__debug?: boolean;
};
declare global {
interface ImportMetaEnv {
PRERELEASE: string;
}
interface Window {
Cookies: typeof js_cookie;
}
var __env__: ReturnType<typeof resolveEnvFromConfig>;
}
declare function prerelease(options?: Options): Promise<any>;
export { type Options, prerelease };