@gylautorun/dev-proxy-cookie 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +214 -2
- package/dist/index.d.mts +108 -5
- package/dist/index.d.ts +108 -5
- package/dist/index.js +174 -21
- package/dist/index.min.js +4 -4
- package/dist/index.min.mjs +4 -4
- package/dist/index.mjs +171 -21
- package/package.json +1 -1
- package/src/proxy/core.ts +36 -6
- package/src/proxy/vite-adapter.ts +21 -0
- package/src/proxy/vite-cookie-plugin.ts +48 -14
- package/src/proxy/vite-plugin.ts +11 -0
- package/src/proxy/vue-proxy-config.ts +48 -7
- package/src/utils/env-detector.ts +155 -0
- package/src/utils/index.ts +2 -1
package/README.md
CHANGED
|
@@ -239,11 +239,32 @@ export default defineConfig({
|
|
|
239
239
|
|
|
240
240
|
```javascript
|
|
241
241
|
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
242
|
-
watch: true, // 是否监听文件变化,默认
|
|
242
|
+
watch: true, // 是否监听文件变化,默认 'auto'
|
|
243
243
|
debug: true, // 是否输出调试日志,默认 false
|
|
244
|
+
isDev: process.env.NODE_ENV === 'development', // 是否为开发环境(优先级最高)
|
|
244
245
|
});
|
|
245
246
|
```
|
|
246
247
|
|
|
248
|
+
**选项:**
|
|
249
|
+
|
|
250
|
+
- `cookieFile` (string): Cookie 文件路径(必需)
|
|
251
|
+
- `watch` (boolean | 'auto'): 是否监听文件变化,默认 `'auto'`
|
|
252
|
+
- `true`: 始终监听
|
|
253
|
+
- `false`: 从不监听
|
|
254
|
+
- `'auto'`: 根据环境自动判断(默认)
|
|
255
|
+
- `debug` (boolean): 是否输出调试日志,默认 `false`
|
|
256
|
+
- `productionEnvs` (string[]): 自定义生产环境变量列表,用于判断是否禁用监听
|
|
257
|
+
- `isDev` (boolean): 是否为开发环境(优先级最高)
|
|
258
|
+
- 设置此参数后,将直接决定是否启用文件监听
|
|
259
|
+
- `true`: 启用监听(开发模式)
|
|
260
|
+
- `false`: 禁用监听(生产模式)
|
|
261
|
+
|
|
262
|
+
**参数优先级:**
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
isDev (最高) → watch (中等) → 智能检测 (最低)
|
|
266
|
+
```
|
|
267
|
+
|
|
247
268
|
### Vite 相关
|
|
248
269
|
|
|
249
270
|
#### viteAutoProxyCookie(options)
|
|
@@ -265,6 +286,10 @@ Vite 插件,自动配置代理和 Cookie 注入。
|
|
|
265
286
|
- `includePaths` (string[]): 只代理这些路径
|
|
266
287
|
- `ignorePaths` (array): 忽略的路径
|
|
267
288
|
- `hooks` (object): 钩子函数配置
|
|
289
|
+
- `isDev` (boolean): 是否为开发环境(优先级最高)
|
|
290
|
+
- 设置此参数后,将直接决定是否启用文件监听
|
|
291
|
+
- `true`: 启用监听(开发模式)
|
|
292
|
+
- `false`: 禁用监听(生产模式)
|
|
268
293
|
|
|
269
294
|
#### viteDevProxyCookie(options)
|
|
270
295
|
|
|
@@ -275,6 +300,14 @@ Vite 插件,基础 Cookie 注入功能。
|
|
|
275
300
|
- `cookieFile` (string): Cookie 文件路径(必需)
|
|
276
301
|
- `debug` (boolean): 是否开启调试日志,默认 `false`
|
|
277
302
|
- `onCookieChange` ((cookie: string) => void): Cookie 变化回调
|
|
303
|
+
- `watch` (boolean | 'auto'): 是否监听文件变化,默认 `'auto'`
|
|
304
|
+
- `true`: 始终监听
|
|
305
|
+
- `false`: 从不监听
|
|
306
|
+
- `'auto'`: 根据环境自动判断(默认)
|
|
307
|
+
- `isDev` (boolean): 是否为开发环境(优先级最高)
|
|
308
|
+
- 设置此参数后,将直接决定是否启用文件监听
|
|
309
|
+
- `true`: 启用监听(开发模式)
|
|
310
|
+
- `false`: 禁用监听(生产模式)
|
|
278
311
|
|
|
279
312
|
### 工具类
|
|
280
313
|
|
|
@@ -458,6 +491,8 @@ src/
|
|
|
458
491
|
|
|
459
492
|
## 最佳实践
|
|
460
493
|
|
|
494
|
+
### 推荐配置
|
|
495
|
+
|
|
461
496
|
```javascript
|
|
462
497
|
// cookie.txt - 存放登录后的 Cookie
|
|
463
498
|
session-id=abc123
|
|
@@ -475,7 +510,10 @@ module.exports = {
|
|
|
475
510
|
devServer: {
|
|
476
511
|
proxy: createAutoProxyConfig({
|
|
477
512
|
target: 'http://localhost:3000',
|
|
478
|
-
getCookie: createFileCookieGetter('./cookie.txt', {
|
|
513
|
+
getCookie: createFileCookieGetter('./cookie.txt', {
|
|
514
|
+
watch: 'auto', // 自动判断环境
|
|
515
|
+
debug: true,
|
|
516
|
+
}),
|
|
479
517
|
ignorePaths: ['/assets/', '/public/'],
|
|
480
518
|
}),
|
|
481
519
|
},
|
|
@@ -489,12 +527,51 @@ export default defineConfig({
|
|
|
489
527
|
viteAutoProxyCookie({
|
|
490
528
|
cookieFile: './cookie.txt',
|
|
491
529
|
target: 'http://localhost:3000',
|
|
530
|
+
isDev: process.env.NODE_ENV === 'development', // 显式指定环境
|
|
492
531
|
ignorePaths: ['/assets/', '/public/'],
|
|
493
532
|
}),
|
|
494
533
|
],
|
|
495
534
|
});
|
|
496
535
|
```
|
|
497
536
|
|
|
537
|
+
### 环境配置建议
|
|
538
|
+
|
|
539
|
+
**开发环境(推荐使用 `isDev`)**
|
|
540
|
+
|
|
541
|
+
```javascript
|
|
542
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
543
|
+
isDev: process.env.NODE_ENV === 'development',
|
|
544
|
+
debug: true,
|
|
545
|
+
});
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
**预发布环境(需要调试)**
|
|
549
|
+
|
|
550
|
+
```javascript
|
|
551
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
552
|
+
isDev: true, // 强制启用监听
|
|
553
|
+
debug: true,
|
|
554
|
+
});
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
**生产环境(禁用监听)**
|
|
558
|
+
|
|
559
|
+
```javascript
|
|
560
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
561
|
+
isDev: false, // 强制禁用监听
|
|
562
|
+
debug: false,
|
|
563
|
+
});
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
**自动检测(默认行为)**
|
|
567
|
+
|
|
568
|
+
```javascript
|
|
569
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
570
|
+
watch: 'auto', // 默认值,自动判断环境
|
|
571
|
+
debug: true,
|
|
572
|
+
});
|
|
573
|
+
```
|
|
574
|
+
|
|
498
575
|
## 常见问题
|
|
499
576
|
|
|
500
577
|
### Q: Cookie 文件修改后没有生效?
|
|
@@ -522,10 +599,145 @@ A: Cookie 值会被自动处理,支持包含 `/`、`+`、`=` 等特殊字符
|
|
|
522
599
|
|
|
523
600
|
A: 启用 `debug: true` 选项,控制台会输出详细的代理日志。也可以在 `hooks.onProxyReq` 中添加自定义日志。
|
|
524
601
|
|
|
602
|
+
### Q: 构建完成后进程不退出,一直挂起?
|
|
603
|
+
|
|
604
|
+
A: 这是由于文件监听器在生产环境下仍然运行导致的。解决方案:
|
|
605
|
+
|
|
606
|
+
**方案一:使用 `isDev` 参数(推荐)**
|
|
607
|
+
|
|
608
|
+
```javascript
|
|
609
|
+
// Vue CLI 项目
|
|
610
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
611
|
+
isDev: process.env.NODE_ENV === 'development',
|
|
612
|
+
debug: true,
|
|
613
|
+
});
|
|
614
|
+
|
|
615
|
+
// Vite 项目
|
|
616
|
+
export default defineConfig({
|
|
617
|
+
plugins: [
|
|
618
|
+
viteDevProxyCookie({
|
|
619
|
+
cookieFile: './cookie.txt',
|
|
620
|
+
isDev: process.env.NODE_ENV === 'development',
|
|
621
|
+
}),
|
|
622
|
+
],
|
|
623
|
+
});
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
**方案二:设置 `watch: false`**
|
|
627
|
+
|
|
628
|
+
```javascript
|
|
629
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
630
|
+
watch: false, // 禁用文件监听
|
|
631
|
+
});
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
**方案三:使用智能检测(默认行为)**
|
|
635
|
+
|
|
636
|
+
```javascript
|
|
637
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
638
|
+
watch: 'auto', // 默认值,自动判断环境
|
|
639
|
+
});
|
|
640
|
+
```
|
|
641
|
+
|
|
642
|
+
智能检测会检查以下环境变量:
|
|
643
|
+
|
|
644
|
+
- `NODE_ENV`、`BUILD_MODE`、`VUE_APP_ENV`、`VITE_NODE_ENV` 等
|
|
645
|
+
- CI/CD 环境标识(`CI`)
|
|
646
|
+
- npm 生命周期事件(如 `build`)
|
|
647
|
+
- 进程参数(如 `--mode=production`)
|
|
648
|
+
|
|
649
|
+
### Q: 如何在预发布环境(staging/uat)启用文件监听?
|
|
650
|
+
|
|
651
|
+
A: 预发布环境通常需要调试,建议显式设置 `isDev: true`:
|
|
652
|
+
|
|
653
|
+
```javascript
|
|
654
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
655
|
+
isDev: true, // 强制启用监听
|
|
656
|
+
debug: true,
|
|
657
|
+
});
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
或者使用 `watch: true`:
|
|
661
|
+
|
|
662
|
+
```javascript
|
|
663
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
664
|
+
watch: true, // 始终监听
|
|
665
|
+
debug: true,
|
|
666
|
+
});
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
### Q: `isDev`、`watch` 和智能检测的优先级是什么?
|
|
670
|
+
|
|
671
|
+
A: 优先级从高到低:
|
|
672
|
+
|
|
673
|
+
```
|
|
674
|
+
isDev (最高) → watch (中等) → 智能检测 (最低)
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
- 如果设置了 `isDev`,直接使用该值
|
|
678
|
+
- 如果 `isDev` 未设置但 `watch` 为 `true` 或 `false`,使用 `watch` 值
|
|
679
|
+
- 如果都未设置或 `watch` 为 `'auto'`,使用智能检测
|
|
680
|
+
|
|
681
|
+
### Q: 如何自定义生产环境检测?
|
|
682
|
+
|
|
683
|
+
A: 使用 `productionEnvs` 参数:
|
|
684
|
+
|
|
685
|
+
```javascript
|
|
686
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
687
|
+
productionEnvs: ['MY_APP_ENV', 'BUILD_TYPE'], // 自定义环境变量
|
|
688
|
+
debug: true,
|
|
689
|
+
});
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
### Q: ESLint 报错 `import/no-extraneous-dependencies`?
|
|
693
|
+
|
|
694
|
+
A: 确保在 `.eslintrc.js` 中正确配置:
|
|
695
|
+
|
|
696
|
+
```javascript
|
|
697
|
+
module.exports = {
|
|
698
|
+
// ...
|
|
699
|
+
rules: {
|
|
700
|
+
'import/no-extraneous-dependencies': ['error', {
|
|
701
|
+
devDependencies: true,
|
|
702
|
+
optionalDependencies: false,
|
|
703
|
+
}],
|
|
704
|
+
},
|
|
705
|
+
};
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
### Q: 如何查看当前环境检测的详细信息?
|
|
709
|
+
|
|
710
|
+
A: 启用 `debug: true` 选项:
|
|
711
|
+
|
|
712
|
+
```javascript
|
|
713
|
+
const getCookie = createFileCookieGetter('./cookie.txt', {
|
|
714
|
+
watch: 'auto',
|
|
715
|
+
debug: true, // 输出环境检测日志
|
|
716
|
+
});
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
控制台会输出类似信息:
|
|
720
|
+
|
|
721
|
+
```
|
|
722
|
+
[env-detector] Auto-detected production mode - disabling watch
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
或
|
|
726
|
+
|
|
727
|
+
```
|
|
728
|
+
[env-detector] Auto-detected development mode - enabling watch
|
|
729
|
+
```
|
|
730
|
+
|
|
525
731
|
## 发布流程
|
|
526
732
|
|
|
527
733
|
完整的发布流程文档请查看:[docs/release.md](docs/release.md)
|
|
528
734
|
|
|
735
|
+
## 问题排查
|
|
736
|
+
|
|
737
|
+
### 构建进程不退出问题
|
|
738
|
+
|
|
739
|
+
如果遇到构建完成后进程不退出的问题,请查看详细解决方案:[docs/build-hang-issue.md](docs/build-hang-issue.md)
|
|
740
|
+
|
|
529
741
|
## License
|
|
530
742
|
|
|
531
743
|
MIT License
|
package/dist/index.d.mts
CHANGED
|
@@ -34,6 +34,15 @@ interface AutoProxyCookieOptions {
|
|
|
34
34
|
[header: string]: string;
|
|
35
35
|
};
|
|
36
36
|
hooks?: ProxyHooks;
|
|
37
|
+
/**
|
|
38
|
+
* 是否为开发环境(优先级最高)
|
|
39
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
40
|
+
* - true: 启用监听(开发模式)
|
|
41
|
+
* - false: 禁用监听(生产模式)
|
|
42
|
+
*
|
|
43
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
44
|
+
*/
|
|
45
|
+
isDev?: boolean;
|
|
37
46
|
}
|
|
38
47
|
declare class AutoProxyCookie {
|
|
39
48
|
private options;
|
|
@@ -61,6 +70,15 @@ declare function createAutoProxyCookie(options: AutoProxyCookieOptions): AutoPro
|
|
|
61
70
|
|
|
62
71
|
interface ViteAutoProxyCookiePluginOptions extends AutoProxyCookieOptions {
|
|
63
72
|
name?: string;
|
|
73
|
+
/**
|
|
74
|
+
* 是否为开发环境(优先级最高)
|
|
75
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
76
|
+
* - true: 启用监听(开发模式)
|
|
77
|
+
* - false: 禁用监听(生产模式)
|
|
78
|
+
*
|
|
79
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
80
|
+
*/
|
|
81
|
+
isDev?: boolean;
|
|
64
82
|
}
|
|
65
83
|
declare function viteAutoProxyCookie(options: ViteAutoProxyCookiePluginOptions): Plugin;
|
|
66
84
|
|
|
@@ -68,19 +86,55 @@ interface ViteDevProxyCookieOptions {
|
|
|
68
86
|
cookieFile: string;
|
|
69
87
|
debug?: boolean;
|
|
70
88
|
onCookieChange?: (cookie: string) => void;
|
|
89
|
+
/**
|
|
90
|
+
* 是否监听文件变化
|
|
91
|
+
* - true: 始终监听
|
|
92
|
+
* - false: 从不监听
|
|
93
|
+
* - 'auto': 根据环境自动判断(默认)
|
|
94
|
+
* @default 'auto'
|
|
95
|
+
*/
|
|
96
|
+
watch?: boolean | 'auto';
|
|
97
|
+
/**
|
|
98
|
+
* 是否为开发环境(优先级最高)
|
|
99
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
100
|
+
* - true: 启用监听(开发模式)
|
|
101
|
+
* - false: 禁用监听(生产模式)
|
|
102
|
+
*
|
|
103
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
104
|
+
*/
|
|
105
|
+
isDev?: boolean;
|
|
71
106
|
}
|
|
72
107
|
declare function viteDevProxyCookie(options: ViteDevProxyCookieOptions): Plugin;
|
|
73
108
|
|
|
74
109
|
/** Options for {@link createFileCookieGetter}. */
|
|
75
110
|
interface CreateFileCookieGetterOptions {
|
|
76
111
|
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
112
|
+
* 是否监听文件变化
|
|
113
|
+
* - true: 始终监听
|
|
114
|
+
* - false: 从不监听
|
|
115
|
+
* - 'auto': 根据环境自动判断(默认)
|
|
116
|
+
*
|
|
117
|
+
* Cookie 值每次代理请求时都会从磁盘读取,因此即使 watch 为 false,
|
|
118
|
+
* 修改 cookie 文件后也不需要重启开发服务器。
|
|
119
|
+
* @default 'auto'
|
|
80
120
|
*/
|
|
81
|
-
watch?: boolean;
|
|
121
|
+
watch?: boolean | 'auto';
|
|
82
122
|
/** Log when the cookie file changes (only if `watch` is true). @default false */
|
|
83
123
|
debug?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* 自定义生产环境变量名称列表,用于判断是否禁用监听
|
|
126
|
+
* 例如: ['MY_APP_ENV', 'BUILD_TYPE']
|
|
127
|
+
*/
|
|
128
|
+
productionEnvs?: string[];
|
|
129
|
+
/**
|
|
130
|
+
* 是否为开发环境(优先级最高)
|
|
131
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
132
|
+
* - true: 启用监听(开发模式)
|
|
133
|
+
* - false: 禁用监听(生产模式)
|
|
134
|
+
*
|
|
135
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
136
|
+
*/
|
|
137
|
+
isDev?: boolean;
|
|
84
138
|
}
|
|
85
139
|
interface VueProxyConfigOptions {
|
|
86
140
|
getCookie?: () => string;
|
|
@@ -122,6 +176,23 @@ interface UnifiedProxyCookieOptions {
|
|
|
122
176
|
includePaths?: string[];
|
|
123
177
|
onCookieChange?: (cookie: string) => void;
|
|
124
178
|
mode?: 'auto' | 'proxy' | 'cookie';
|
|
179
|
+
/**
|
|
180
|
+
* 是否监听文件变化
|
|
181
|
+
* - true: 始终监听
|
|
182
|
+
* - false: 从不监听
|
|
183
|
+
* - 'auto': 根据环境自动判断(默认)
|
|
184
|
+
* @default 'auto'
|
|
185
|
+
*/
|
|
186
|
+
watch?: boolean | 'auto';
|
|
187
|
+
/**
|
|
188
|
+
* 是否为开发环境(优先级最高)
|
|
189
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
190
|
+
* - true: 启用监听(开发模式)
|
|
191
|
+
* - false: 禁用监听(生产模式)
|
|
192
|
+
*
|
|
193
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
194
|
+
*/
|
|
195
|
+
isDev?: boolean;
|
|
125
196
|
}
|
|
126
197
|
declare function createDevProxyCookie(options: UnifiedProxyCookieOptions): Plugin;
|
|
127
198
|
declare function getViteVersion(): string | null;
|
|
@@ -158,4 +229,36 @@ declare class CookieWatcher {
|
|
|
158
229
|
}
|
|
159
230
|
declare function watchCookieFile(cookieFile: string, onCookieChange: (cookie: string) => void, onError?: (error: Error) => void): CookieWatcher;
|
|
160
231
|
|
|
161
|
-
|
|
232
|
+
/**
|
|
233
|
+
* 环境检测工具函数
|
|
234
|
+
* 用于智能判断当前是否为生产构建环境
|
|
235
|
+
*/
|
|
236
|
+
/**
|
|
237
|
+
* 判断环境变量值是否表示生产环境
|
|
238
|
+
*/
|
|
239
|
+
declare function isProductionValue(value: string): boolean;
|
|
240
|
+
/**
|
|
241
|
+
* 智能检测当前是否为生产构建环境
|
|
242
|
+
* 通过多种方式综合判断,避免依赖单一环境变量
|
|
243
|
+
*
|
|
244
|
+
* @param customEnvs 用户自定义的环境变量名称列表
|
|
245
|
+
* @param debug 是否输出调试日志
|
|
246
|
+
* @param loggerPrefix 日志前缀,用于区分不同模块
|
|
247
|
+
* @returns 是否为生产环境
|
|
248
|
+
*/
|
|
249
|
+
declare function detectProductionEnvironment(customEnvs?: string[], debug?: boolean, loggerPrefix?: string): boolean;
|
|
250
|
+
/**
|
|
251
|
+
* 判断是否应该启用文件监听
|
|
252
|
+
*
|
|
253
|
+
* 注意:此函数仅在 isDev 参数未设置时调用,用于智能判断环境
|
|
254
|
+
* 如果用户已通过 isDev 参数明确指定环境,则不会调用此函数
|
|
255
|
+
*
|
|
256
|
+
* @param watch 用户设置的 watch 选项
|
|
257
|
+
* @param customEnvs 用户自定义的环境变量列表
|
|
258
|
+
* @param debug 是否输出调试日志
|
|
259
|
+
* @param loggerPrefix 日志前缀
|
|
260
|
+
* @returns 是否应该启用监听
|
|
261
|
+
*/
|
|
262
|
+
declare function shouldEnableWatch(watch: boolean | 'auto', customEnvs?: string[], debug?: boolean, loggerPrefix?: string): boolean;
|
|
263
|
+
|
|
264
|
+
export { type AutoProxyConfigOptions, AutoProxyCookie, type AutoProxyCookieOptions, CookieReader, type CookieReaderOptions, CookieWatcher, type CookieWatcherOptions, type CreateFileCookieGetterOptions, type ErrorCallback, type ProxyConfig, type ProxyHooks, type UnifiedProxyCookieOptions, type ViteAutoProxyCookiePluginOptions, type ViteDevProxyCookieOptions, type VueProxyConfigOptions, createAutoProxyConfig, createAutoProxyCookie, createCookieGetter, createDevProxyCookie, createFileCookieGetter, createVueProxyConfig, detectProductionEnvironment, getViteMajorVersion, getViteVersion, isProductionValue, shouldEnableWatch, viteAutoProxyCookie, viteDevProxyCookie, watchCookieFile };
|
package/dist/index.d.ts
CHANGED
|
@@ -34,6 +34,15 @@ interface AutoProxyCookieOptions {
|
|
|
34
34
|
[header: string]: string;
|
|
35
35
|
};
|
|
36
36
|
hooks?: ProxyHooks;
|
|
37
|
+
/**
|
|
38
|
+
* 是否为开发环境(优先级最高)
|
|
39
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
40
|
+
* - true: 启用监听(开发模式)
|
|
41
|
+
* - false: 禁用监听(生产模式)
|
|
42
|
+
*
|
|
43
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
44
|
+
*/
|
|
45
|
+
isDev?: boolean;
|
|
37
46
|
}
|
|
38
47
|
declare class AutoProxyCookie {
|
|
39
48
|
private options;
|
|
@@ -61,6 +70,15 @@ declare function createAutoProxyCookie(options: AutoProxyCookieOptions): AutoPro
|
|
|
61
70
|
|
|
62
71
|
interface ViteAutoProxyCookiePluginOptions extends AutoProxyCookieOptions {
|
|
63
72
|
name?: string;
|
|
73
|
+
/**
|
|
74
|
+
* 是否为开发环境(优先级最高)
|
|
75
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
76
|
+
* - true: 启用监听(开发模式)
|
|
77
|
+
* - false: 禁用监听(生产模式)
|
|
78
|
+
*
|
|
79
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
80
|
+
*/
|
|
81
|
+
isDev?: boolean;
|
|
64
82
|
}
|
|
65
83
|
declare function viteAutoProxyCookie(options: ViteAutoProxyCookiePluginOptions): Plugin;
|
|
66
84
|
|
|
@@ -68,19 +86,55 @@ interface ViteDevProxyCookieOptions {
|
|
|
68
86
|
cookieFile: string;
|
|
69
87
|
debug?: boolean;
|
|
70
88
|
onCookieChange?: (cookie: string) => void;
|
|
89
|
+
/**
|
|
90
|
+
* 是否监听文件变化
|
|
91
|
+
* - true: 始终监听
|
|
92
|
+
* - false: 从不监听
|
|
93
|
+
* - 'auto': 根据环境自动判断(默认)
|
|
94
|
+
* @default 'auto'
|
|
95
|
+
*/
|
|
96
|
+
watch?: boolean | 'auto';
|
|
97
|
+
/**
|
|
98
|
+
* 是否为开发环境(优先级最高)
|
|
99
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
100
|
+
* - true: 启用监听(开发模式)
|
|
101
|
+
* - false: 禁用监听(生产模式)
|
|
102
|
+
*
|
|
103
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
104
|
+
*/
|
|
105
|
+
isDev?: boolean;
|
|
71
106
|
}
|
|
72
107
|
declare function viteDevProxyCookie(options: ViteDevProxyCookieOptions): Plugin;
|
|
73
108
|
|
|
74
109
|
/** Options for {@link createFileCookieGetter}. */
|
|
75
110
|
interface CreateFileCookieGetterOptions {
|
|
76
111
|
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
112
|
+
* 是否监听文件变化
|
|
113
|
+
* - true: 始终监听
|
|
114
|
+
* - false: 从不监听
|
|
115
|
+
* - 'auto': 根据环境自动判断(默认)
|
|
116
|
+
*
|
|
117
|
+
* Cookie 值每次代理请求时都会从磁盘读取,因此即使 watch 为 false,
|
|
118
|
+
* 修改 cookie 文件后也不需要重启开发服务器。
|
|
119
|
+
* @default 'auto'
|
|
80
120
|
*/
|
|
81
|
-
watch?: boolean;
|
|
121
|
+
watch?: boolean | 'auto';
|
|
82
122
|
/** Log when the cookie file changes (only if `watch` is true). @default false */
|
|
83
123
|
debug?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* 自定义生产环境变量名称列表,用于判断是否禁用监听
|
|
126
|
+
* 例如: ['MY_APP_ENV', 'BUILD_TYPE']
|
|
127
|
+
*/
|
|
128
|
+
productionEnvs?: string[];
|
|
129
|
+
/**
|
|
130
|
+
* 是否为开发环境(优先级最高)
|
|
131
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
132
|
+
* - true: 启用监听(开发模式)
|
|
133
|
+
* - false: 禁用监听(生产模式)
|
|
134
|
+
*
|
|
135
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
136
|
+
*/
|
|
137
|
+
isDev?: boolean;
|
|
84
138
|
}
|
|
85
139
|
interface VueProxyConfigOptions {
|
|
86
140
|
getCookie?: () => string;
|
|
@@ -122,6 +176,23 @@ interface UnifiedProxyCookieOptions {
|
|
|
122
176
|
includePaths?: string[];
|
|
123
177
|
onCookieChange?: (cookie: string) => void;
|
|
124
178
|
mode?: 'auto' | 'proxy' | 'cookie';
|
|
179
|
+
/**
|
|
180
|
+
* 是否监听文件变化
|
|
181
|
+
* - true: 始终监听
|
|
182
|
+
* - false: 从不监听
|
|
183
|
+
* - 'auto': 根据环境自动判断(默认)
|
|
184
|
+
* @default 'auto'
|
|
185
|
+
*/
|
|
186
|
+
watch?: boolean | 'auto';
|
|
187
|
+
/**
|
|
188
|
+
* 是否为开发环境(优先级最高)
|
|
189
|
+
* 设置此参数后,将直接决定是否启用文件监听:
|
|
190
|
+
* - true: 启用监听(开发模式)
|
|
191
|
+
* - false: 禁用监听(生产模式)
|
|
192
|
+
*
|
|
193
|
+
* 使用示例: isDev: process.env.NODE_ENV === 'development'
|
|
194
|
+
*/
|
|
195
|
+
isDev?: boolean;
|
|
125
196
|
}
|
|
126
197
|
declare function createDevProxyCookie(options: UnifiedProxyCookieOptions): Plugin;
|
|
127
198
|
declare function getViteVersion(): string | null;
|
|
@@ -158,4 +229,36 @@ declare class CookieWatcher {
|
|
|
158
229
|
}
|
|
159
230
|
declare function watchCookieFile(cookieFile: string, onCookieChange: (cookie: string) => void, onError?: (error: Error) => void): CookieWatcher;
|
|
160
231
|
|
|
161
|
-
|
|
232
|
+
/**
|
|
233
|
+
* 环境检测工具函数
|
|
234
|
+
* 用于智能判断当前是否为生产构建环境
|
|
235
|
+
*/
|
|
236
|
+
/**
|
|
237
|
+
* 判断环境变量值是否表示生产环境
|
|
238
|
+
*/
|
|
239
|
+
declare function isProductionValue(value: string): boolean;
|
|
240
|
+
/**
|
|
241
|
+
* 智能检测当前是否为生产构建环境
|
|
242
|
+
* 通过多种方式综合判断,避免依赖单一环境变量
|
|
243
|
+
*
|
|
244
|
+
* @param customEnvs 用户自定义的环境变量名称列表
|
|
245
|
+
* @param debug 是否输出调试日志
|
|
246
|
+
* @param loggerPrefix 日志前缀,用于区分不同模块
|
|
247
|
+
* @returns 是否为生产环境
|
|
248
|
+
*/
|
|
249
|
+
declare function detectProductionEnvironment(customEnvs?: string[], debug?: boolean, loggerPrefix?: string): boolean;
|
|
250
|
+
/**
|
|
251
|
+
* 判断是否应该启用文件监听
|
|
252
|
+
*
|
|
253
|
+
* 注意:此函数仅在 isDev 参数未设置时调用,用于智能判断环境
|
|
254
|
+
* 如果用户已通过 isDev 参数明确指定环境,则不会调用此函数
|
|
255
|
+
*
|
|
256
|
+
* @param watch 用户设置的 watch 选项
|
|
257
|
+
* @param customEnvs 用户自定义的环境变量列表
|
|
258
|
+
* @param debug 是否输出调试日志
|
|
259
|
+
* @param loggerPrefix 日志前缀
|
|
260
|
+
* @returns 是否应该启用监听
|
|
261
|
+
*/
|
|
262
|
+
declare function shouldEnableWatch(watch: boolean | 'auto', customEnvs?: string[], debug?: boolean, loggerPrefix?: string): boolean;
|
|
263
|
+
|
|
264
|
+
export { type AutoProxyConfigOptions, AutoProxyCookie, type AutoProxyCookieOptions, CookieReader, type CookieReaderOptions, CookieWatcher, type CookieWatcherOptions, type CreateFileCookieGetterOptions, type ErrorCallback, type ProxyConfig, type ProxyHooks, type UnifiedProxyCookieOptions, type ViteAutoProxyCookiePluginOptions, type ViteDevProxyCookieOptions, type VueProxyConfigOptions, createAutoProxyConfig, createAutoProxyCookie, createCookieGetter, createDevProxyCookie, createFileCookieGetter, createVueProxyConfig, detectProductionEnvironment, getViteMajorVersion, getViteVersion, isProductionValue, shouldEnableWatch, viteAutoProxyCookie, viteDevProxyCookie, watchCookieFile };
|