befly-vite 1.40.0 → 1.42.0
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 +40 -9
- package/index.js +10 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -82,17 +82,18 @@ export default createBeflyViteConfig();
|
|
|
82
82
|
8. `build.assetsDir = "assets"`
|
|
83
83
|
9. `build.cssMinify = "lightningcss"`
|
|
84
84
|
10. `css.transformer = "lightningcss"`
|
|
85
|
-
11. 默认 CSS 浏览器基线:Chrome 107 / Edge 107 / Firefox 104 / Safari 16.
|
|
85
|
+
11. 默认 CSS 浏览器基线:Chrome 107 / Edge 107 / Firefox 104 / Safari 16.010. 默认启用 `@vitejs/plugin-legacy` 对旧浏览器做 JS polyfill
|
|
86
86
|
|
|
87
87
|
### 参数说明
|
|
88
88
|
|
|
89
|
-
| 参数 | 类型 | 默认值 | 作用
|
|
90
|
-
| -------------- | -------------------- | --------------- |
|
|
91
|
-
| `root` | `string` | `process.cwd()` | 项目根目录,用于解析 `src`、扫描 `views` 和生成别名
|
|
92
|
-
| `analyzer` | `boolean` | `false` | 是否启用打包分析,并输出到 `<root>/temp/analyzer`
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
95
|
-
| `
|
|
89
|
+
| 参数 | 类型 | 默认值 | 作用 |
|
|
90
|
+
| -------------- | -------------------- | --------------- | ------------------------------------------------------------ |
|
|
91
|
+
| `root` | `string` | `process.cwd()` | 项目根目录,用于解析 `src`、扫描 `views` 和生成别名 |
|
|
92
|
+
| `analyzer` | `boolean` | `false` | 是否启用打包分析,并输出到 `<root>/temp/analyzer` |
|
|
93
|
+
| `legacy` | `boolean \| object` | `true` | 是否启用 `@vitejs/plugin-legacy`,默认自动 polyfill 旧浏览器 |
|
|
94
|
+
| `resolvers` | `Object \| Object[]` | `undefined` | 追加到组件自动注册中的自定义 resolver |
|
|
95
|
+
| `manualChunks` | `Function \| Object` | `undefined` | 便捷写入 `build.rolldownOptions.output.manualChunks` |
|
|
96
|
+
| `viteConfig` | `Object` | `{}` | 最终合并到默认配置上的 Vite 原生配置 |
|
|
96
97
|
|
|
97
98
|
### 参数细节
|
|
98
99
|
|
|
@@ -129,6 +130,36 @@ export default createBeflyViteConfig({
|
|
|
129
130
|
|
|
130
131
|
适合:分析打包体积、依赖拆分和大包来源。
|
|
131
132
|
|
|
133
|
+
#### legacy
|
|
134
|
+
|
|
135
|
+
默认启用 `@vitejs/plugin-legacy`,自动注入 `core-js` 等 polyfill,解决旧浏览器不支持 `Array.prototype.toSorted` 等现代 JS API 的问题。
|
|
136
|
+
|
|
137
|
+
```javascript
|
|
138
|
+
import { createBeflyViteConfig } from "befly-vite";
|
|
139
|
+
|
|
140
|
+
// 使用默认配置
|
|
141
|
+
export default createBeflyViteConfig();
|
|
142
|
+
|
|
143
|
+
// 关闭 legacy
|
|
144
|
+
export default createBeflyViteConfig({
|
|
145
|
+
legacy: false
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
// 自定义 legacy 配置
|
|
149
|
+
export default createBeflyViteConfig({
|
|
150
|
+
legacy: {
|
|
151
|
+
targets: ["iOS >= 14", "Safari >= 14", "Chrome >= 109"],
|
|
152
|
+
modernPolyfills: true
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
说明:
|
|
158
|
+
|
|
159
|
+
1. 默认目标为 `["defaults", "not IE 11"]`,并开启 `modernPolyfills`。
|
|
160
|
+
2. 传 `false` 可完全关闭 legacy 插件,减少构建产物体积。
|
|
161
|
+
3. 传对象时,会与默认配置完全替换,而不是合并。
|
|
162
|
+
|
|
132
163
|
#### resolvers
|
|
133
164
|
|
|
134
165
|
`befly-vite` 默认内置:
|
|
@@ -527,7 +558,7 @@ const finalRoutes = Layouts(routes, "/dashboard", function (layoutName) {
|
|
|
527
558
|
|
|
528
559
|
### 最常见脚本写法
|
|
529
560
|
|
|
530
|
-
页面项目自己的 `package.json` 在这里主要只保留运行脚本;在 Befly 仓库内,`lint` / `format` 的配置文件、根脚本和提交钩子统一跟随仓库根 `oxfmt.config.js` / `oxlint.config.
|
|
561
|
+
页面项目自己的 `package.json` 在这里主要只保留运行脚本;在 Befly 仓库内,`lint` / `format` 的配置文件、根脚本和提交钩子统一跟随仓库根 `oxfmt.config.js` / `oxlint.config.js` 与共享 Oxc 基线,不要在基于 `befly-vite` 的页面包里再复制第二套可执行 Oxc 配置。
|
|
531
562
|
|
|
532
563
|
```json
|
|
533
564
|
{
|
package/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { existsSync, realpathSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
|
|
5
|
+
import legacyPlugin from "@vitejs/plugin-legacy";
|
|
5
6
|
import vue from "@vitejs/plugin-vue";
|
|
6
7
|
import { TDesignResolver } from "unplugin-vue-components/resolvers";
|
|
7
8
|
import Components from "unplugin-vue-components/vite";
|
|
@@ -18,6 +19,10 @@ const DEFAULT_LIGHTNINGCSS_TARGETS = {
|
|
|
18
19
|
ios_saf: 16 << 16,
|
|
19
20
|
safari: 16 << 16
|
|
20
21
|
};
|
|
22
|
+
const DEFAULT_LEGACY_OPTIONS = {
|
|
23
|
+
targets: ["defaults", "not IE 11"],
|
|
24
|
+
modernPolyfills: true
|
|
25
|
+
};
|
|
21
26
|
|
|
22
27
|
function normalizeResolvers(resolvers) {
|
|
23
28
|
if (resolvers === null || resolvers === undefined) {
|
|
@@ -71,6 +76,7 @@ export function createBeflyViteConfig(options = {}) {
|
|
|
71
76
|
//
|
|
72
77
|
root,
|
|
73
78
|
analyzer = false,
|
|
79
|
+
legacy = true,
|
|
74
80
|
resolvers,
|
|
75
81
|
manualChunks,
|
|
76
82
|
viteConfig = {}
|
|
@@ -102,6 +108,10 @@ export function createBeflyViteConfig(options = {}) {
|
|
|
102
108
|
})
|
|
103
109
|
);
|
|
104
110
|
plugins.push(createComponentsPlugin({ resolvers: resolvers }));
|
|
111
|
+
if (legacy !== false) {
|
|
112
|
+
const legacyOptions = legacy === true ? DEFAULT_LEGACY_OPTIONS : legacy;
|
|
113
|
+
plugins.push(...legacyPlugin(legacyOptions));
|
|
114
|
+
}
|
|
105
115
|
if (analyzer) {
|
|
106
116
|
plugins.push(
|
|
107
117
|
bundleAnalyzer({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "befly-vite",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.42.0",
|
|
4
4
|
"gitHead": "282f7accca9c8d55956a5490c0365cce4a1ad90d",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Befly Vite 配置预设和插件集合",
|
|
@@ -37,10 +37,11 @@
|
|
|
37
37
|
"registry": "https://registry.npmjs.org"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
+
"@vitejs/plugin-legacy": "^6.1.0",
|
|
40
41
|
"@vitejs/plugin-vue": "^6.0.7",
|
|
41
42
|
"sass-embedded": "^1.100.0",
|
|
42
43
|
"unplugin-vue-components": "^32.1.0",
|
|
43
|
-
"vite": "^8.1.
|
|
44
|
+
"vite": "^8.1.4",
|
|
44
45
|
"vite-bundle-analyzer": "^1.3.8",
|
|
45
46
|
"vue-router": "^5.1.0"
|
|
46
47
|
},
|