vxrn 1.2.72 → 1.2.73-1769198278225
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/dist/config/mergeUserConfig.js +12 -8
- package/dist/config/mergeUserConfig.js.map +1 -1
- package/dist/config/mergeUserConfig.mjs +4 -2
- package/dist/config/mergeUserConfig.mjs.map +1 -1
- package/dist/config/mergeUserConfig.native.js +10 -2
- package/dist/config/mergeUserConfig.native.js.map +1 -1
- package/dist/config/mergeUserConfig.test.js +80 -0
- package/dist/config/mergeUserConfig.test.js.map +6 -0
- package/dist/config/mergeUserConfig.test.mjs +83 -0
- package/dist/config/mergeUserConfig.test.mjs.map +1 -0
- package/dist/config/mergeUserConfig.test.native.js +90 -0
- package/dist/config/mergeUserConfig.test.native.js.map +1 -0
- package/dist/plugins/autoDepOptimizePlugin.js +10 -6
- package/dist/plugins/autoDepOptimizePlugin.js.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.mjs +12 -6
- package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.native.js +18 -6
- package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.test.js +19 -0
- package/dist/plugins/autoDepOptimizePlugin.test.js.map +6 -0
- package/dist/plugins/autoDepOptimizePlugin.test.mjs +25 -0
- package/dist/plugins/autoDepOptimizePlugin.test.mjs.map +1 -0
- package/dist/plugins/autoDepOptimizePlugin.test.native.js +35 -0
- package/dist/plugins/autoDepOptimizePlugin.test.native.js.map +1 -0
- package/dist/plugins/defaultDepOptimizePlugin.js +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.js.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.mjs +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.native.js +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.native.js.map +1 -1
- package/package.json +12 -12
- package/src/config/mergeUserConfig.test.ts +126 -0
- package/src/config/mergeUserConfig.ts +16 -8
- package/src/plugins/autoDepOptimizePlugin.test.ts +42 -0
- package/src/plugins/autoDepOptimizePlugin.ts +19 -5
- package/src/plugins/defaultDepOptimizePlugin.ts +2 -1
- package/types/config/mergeUserConfig.d.ts.map +1 -1
- package/types/config/mergeUserConfig.test.d.ts +2 -0
- package/types/config/mergeUserConfig.test.d.ts.map +1 -0
- package/types/plugins/autoDepOptimizePlugin.d.ts.map +1 -1
- package/types/plugins/autoDepOptimizePlugin.test.d.ts +2 -0
- package/types/plugins/autoDepOptimizePlugin.test.d.ts.map +1 -0
- package/types/plugins/defaultDepOptimizePlugin.d.ts.map +1 -1
|
@@ -10,7 +10,15 @@ function mergeUserConfig(optimizeDeps, serverConfig, userViteConfig) {
|
|
|
10
10
|
return serverConfig;
|
|
11
11
|
}
|
|
12
12
|
function deepMergeOptimizeDeps(a, b, extraDepsOpt, avoidMergeExternal = !1) {
|
|
13
|
-
a.optimizeDeps ||= {}, b.optimizeDeps ||= {}
|
|
13
|
+
a.optimizeDeps ||= {}, b.optimizeDeps ||= {};
|
|
14
|
+
const excludeSet = new Set(
|
|
15
|
+
uniq([
|
|
16
|
+
...a.optimizeDeps.exclude || [],
|
|
17
|
+
...b.optimizeDeps.exclude || [],
|
|
18
|
+
...extraDepsOpt?.exclude || []
|
|
19
|
+
])
|
|
20
|
+
);
|
|
21
|
+
avoidMergeExternal || (a.noExternal === !0 || b.noExternal === !0 ? a.noExternal = !0 : a.noExternal = uniq([
|
|
14
22
|
...coerceToArray(a.noExternal || []),
|
|
15
23
|
...a.optimizeDeps.include || [],
|
|
16
24
|
...b.optimizeDeps.include || [],
|
|
@@ -21,19 +29,15 @@ function deepMergeOptimizeDeps(a, b, extraDepsOpt, avoidMergeExternal = !1) {
|
|
|
21
29
|
"react-dom",
|
|
22
30
|
"react-dom/server",
|
|
23
31
|
"react-dom/client"
|
|
24
|
-
])), a.optimizeDeps.exclude = uniq([
|
|
25
|
-
...a.optimizeDeps.exclude || [],
|
|
26
|
-
...b.optimizeDeps.exclude || [],
|
|
27
|
-
...extraDepsOpt?.exclude || []
|
|
28
|
-
]), a.optimizeDeps.include = uniq([
|
|
32
|
+
]).filter((dep) => typeof dep != "string" || !excludeSet.has(dep))), a.optimizeDeps.exclude = [...excludeSet], a.optimizeDeps.include = uniq([
|
|
29
33
|
...a.optimizeDeps.include || [],
|
|
30
34
|
...b.optimizeDeps.include || [],
|
|
31
35
|
...extraDepsOpt?.include || []
|
|
32
|
-
]), a.optimizeDeps.needsInterop = uniq([
|
|
36
|
+
]).filter((dep) => !excludeSet.has(dep)), a.optimizeDeps.needsInterop = uniq([
|
|
33
37
|
...a.optimizeDeps.needsInterop || [],
|
|
34
38
|
...b.optimizeDeps.needsInterop || [],
|
|
35
39
|
...extraDepsOpt?.needsInterop || []
|
|
36
|
-
]), a.optimizeDeps.esbuildOptions = {
|
|
40
|
+
]).filter((dep) => !excludeSet.has(dep)), a.optimizeDeps.esbuildOptions = {
|
|
37
41
|
...a.optimizeDeps.esbuildOptions,
|
|
38
42
|
...b.optimizeDeps.esbuildOptions,
|
|
39
43
|
...extraDepsOpt?.esbuildOptions
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/config/mergeUserConfig.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,mBAAgE;AACzE,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AAgBd,SAAS,gBACd,cACA,cACA,gBACA;AACA,MAAI,gBAAgB;AASlB,QARA,eAAe,YAAY,cAAc,cAAc,GAGnD,eAAe,QACjB,aAAa,MAAM,eAAe,MAKlC,aAAa,KAAK,cAClB,aAAa,IAAI,eAAe,MAChC,CAAC,MAAM,QAAQ,aAAa,IAAI,UAAU;AAE1C,YAAM,IAAI,MAAM,yCAAyC;AAO3D,iBAAa,QAAQ,CAAC,GACtB,eAAe,QAAQ,CAAC,GACxB,sBAAsB,aAAa,KAAK,eAAe,KAAK,YAAY,GACxE,sBAAsB,aAAa,KAAK,gBAAgB,YAAY;AAAA,EACtE;AAEA,SAAO;AACT;AAEO,SAAS,sBACd,GACA,GACA,cACA,qBAAqB,IACrB;AACA,IAAE,iBAAiB,CAAC,GACpB,EAAE,iBAAiB,CAAC,
|
|
4
|
+
"mappings": "AAAA,SAAS,mBAAgE;AACzE,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AAgBd,SAAS,gBACd,cACA,cACA,gBACA;AACA,MAAI,gBAAgB;AASlB,QARA,eAAe,YAAY,cAAc,cAAc,GAGnD,eAAe,QACjB,aAAa,MAAM,eAAe,MAKlC,aAAa,KAAK,cAClB,aAAa,IAAI,eAAe,MAChC,CAAC,MAAM,QAAQ,aAAa,IAAI,UAAU;AAE1C,YAAM,IAAI,MAAM,yCAAyC;AAO3D,iBAAa,QAAQ,CAAC,GACtB,eAAe,QAAQ,CAAC,GACxB,sBAAsB,aAAa,KAAK,eAAe,KAAK,YAAY,GACxE,sBAAsB,aAAa,KAAK,gBAAgB,YAAY;AAAA,EACtE;AAEA,SAAO;AACT;AAEO,SAAS,sBACd,GACA,GACA,cACA,qBAAqB,IACrB;AACA,IAAE,iBAAiB,CAAC,GACpB,EAAE,iBAAiB,CAAC;AAGpB,QAAM,aAAa,IAAI;AAAA,IACrB,KAAK;AAAA,MACH,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,MAC/B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,MAC/B,GAAI,cAAc,WAAW,CAAC;AAAA,IAChC,CAAC;AAAA,EACH;AAEA,EAAK,uBAEC,EAAE,eAAe,MAAQ,EAAE,eAAe,KAC5C,EAAE,aAAa,KAGf,EAAE,aAAa,KAAK;AAAA,IAClB,GAAG,cAAe,EAAE,cAA2B,CAAC,CAAC;AAAA,IACjD,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAG,cAAc,EAAE,cAAc,CAAC,CAAC;AAAA,IACnC,GAAI,cAAc,WAAW,CAAC;AAAA;AAAA,IAG9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EAAE,OAAO,CAAC,QAAQ,OAAO,OAAQ,YAAY,CAAC,WAAW,IAAI,GAAG,CAAC,IAItE,EAAE,aAAa,UAAU,CAAC,GAAG,UAAU,GAIvC,EAAE,aAAa,UAAU,KAAK;AAAA,IAC5B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,cAAc,WAAW,CAAC;AAAA,EAChC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC,GAEvC,EAAE,aAAa,eAAe,KAAK;AAAA,IACjC,GAAI,EAAE,aAAa,gBAAgB,CAAC;AAAA,IACpC,GAAI,EAAE,aAAa,gBAAgB,CAAC;AAAA,IACpC,GAAI,cAAc,gBAAgB,CAAC;AAAA,EACrC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC,GAEvC,EAAE,aAAa,iBAAiB;AAAA,IAC9B,GAAG,EAAE,aAAa;AAAA,IAClB,GAAG,EAAE,aAAa;AAAA,IAClB,GAAG,cAAc;AAAA,EACnB;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -9,9 +9,11 @@ function mergeUserConfig(optimizeDeps, serverConfig, userViteConfig) {
|
|
|
9
9
|
return serverConfig;
|
|
10
10
|
}
|
|
11
11
|
function deepMergeOptimizeDeps(a, b, extraDepsOpt, avoidMergeExternal = !1) {
|
|
12
|
-
a.optimizeDeps ||= {}, b.optimizeDeps ||= {}
|
|
12
|
+
a.optimizeDeps ||= {}, b.optimizeDeps ||= {};
|
|
13
|
+
const excludeSet = new Set(uniq([...(a.optimizeDeps.exclude || []), ...(b.optimizeDeps.exclude || []), ...(extraDepsOpt?.exclude || [])]));
|
|
14
|
+
avoidMergeExternal || (a.noExternal === !0 || b.noExternal === !0 ? a.noExternal = !0 : a.noExternal = uniq([...coerceToArray(a.noExternal || []), ...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...coerceToArray(b.noExternal || []), ...(extraDepsOpt?.include || []),
|
|
13
15
|
// TODO at least move to getOptimizeDeps
|
|
14
|
-
"react", "react-dom", "react-dom/server", "react-dom/client"])
|
|
16
|
+
"react", "react-dom", "react-dom/server", "react-dom/client"]).filter(dep => typeof dep != "string" || !excludeSet.has(dep))), a.optimizeDeps.exclude = [...excludeSet], a.optimizeDeps.include = uniq([...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...(extraDepsOpt?.include || [])]).filter(dep => !excludeSet.has(dep)), a.optimizeDeps.needsInterop = uniq([...(a.optimizeDeps.needsInterop || []), ...(b.optimizeDeps.needsInterop || []), ...(extraDepsOpt?.needsInterop || [])]).filter(dep => !excludeSet.has(dep)), a.optimizeDeps.esbuildOptions = {
|
|
15
17
|
...a.optimizeDeps.esbuildOptions,
|
|
16
18
|
...b.optimizeDeps.esbuildOptions,
|
|
17
19
|
...extraDepsOpt?.esbuildOptions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mergeConfig","coerceToArray","uniq","mergeUserConfig","optimizeDeps","serverConfig","userViteConfig","css","ssr","noExternal","Array","isArray","Error","deepMergeOptimizeDeps","a","b","extraDepsOpt","avoidMergeExternal","
|
|
1
|
+
{"version":3,"names":["mergeConfig","coerceToArray","uniq","mergeUserConfig","optimizeDeps","serverConfig","userViteConfig","css","ssr","noExternal","Array","isArray","Error","deepMergeOptimizeDeps","a","b","extraDepsOpt","avoidMergeExternal","excludeSet","Set","exclude","include","filter","dep","has","needsInterop","esbuildOptions"],"sources":["../../src/config/mergeUserConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -13,9 +13,17 @@ function deepMergeOptimizeDeps(a, b, extraDepsOpt) {
|
|
|
13
13
|
var avoidMergeExternal = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1,
|
|
14
14
|
_a,
|
|
15
15
|
_b;
|
|
16
|
-
(_a = a).optimizeDeps || (_a.optimizeDeps = {}), (_b = b).optimizeDeps || (_b.optimizeDeps = {})
|
|
16
|
+
(_a = a).optimizeDeps || (_a.optimizeDeps = {}), (_b = b).optimizeDeps || (_b.optimizeDeps = {});
|
|
17
|
+
var excludeSet = new Set(uniq([...(a.optimizeDeps.exclude || []), ...(b.optimizeDeps.exclude || []), ...(extraDepsOpt?.exclude || [])]));
|
|
18
|
+
avoidMergeExternal || (a.noExternal === !0 || b.noExternal === !0 ? a.noExternal = !0 : a.noExternal = uniq([...coerceToArray(a.noExternal || []), ...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...coerceToArray(b.noExternal || []), ...(extraDepsOpt?.include || []),
|
|
17
19
|
// TODO at least move to getOptimizeDeps
|
|
18
|
-
"react", "react-dom", "react-dom/server", "react-dom/client"])
|
|
20
|
+
"react", "react-dom", "react-dom/server", "react-dom/client"]).filter(function (dep) {
|
|
21
|
+
return typeof dep != "string" || !excludeSet.has(dep);
|
|
22
|
+
})), a.optimizeDeps.exclude = [...excludeSet], a.optimizeDeps.include = uniq([...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...(extraDepsOpt?.include || [])]).filter(function (dep) {
|
|
23
|
+
return !excludeSet.has(dep);
|
|
24
|
+
}), a.optimizeDeps.needsInterop = uniq([...(a.optimizeDeps.needsInterop || []), ...(b.optimizeDeps.needsInterop || []), ...(extraDepsOpt?.needsInterop || [])]).filter(function (dep) {
|
|
25
|
+
return !excludeSet.has(dep);
|
|
26
|
+
}), a.optimizeDeps.esbuildOptions = {
|
|
19
27
|
...a.optimizeDeps.esbuildOptions,
|
|
20
28
|
...b.optimizeDeps.esbuildOptions,
|
|
21
29
|
...extraDepsOpt?.esbuildOptions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mergeConfig","coerceToArray","uniq","mergeUserConfig","optimizeDeps","serverConfig","userViteConfig","_serverConfig","_userViteConfig","_serverConfig_ssr","css","ssr","noExternal","Array","isArray","Error","deepMergeOptimizeDeps","a","b","extraDepsOpt","avoidMergeExternal","arguments","length","_a","_b","
|
|
1
|
+
{"version":3,"names":["mergeConfig","coerceToArray","uniq","mergeUserConfig","optimizeDeps","serverConfig","userViteConfig","_serverConfig","_userViteConfig","_serverConfig_ssr","css","ssr","noExternal","Array","isArray","Error","deepMergeOptimizeDeps","a","b","extraDepsOpt","avoidMergeExternal","arguments","length","_a","_b","excludeSet","Set","exclude","include","filter","dep","has","needsInterop"],"sources":["../../src/config/mergeUserConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { deepMergeOptimizeDeps } from "./mergeUserConfig";
|
|
3
|
+
describe("deepMergeOptimizeDeps", () => {
|
|
4
|
+
it("filters excluded deps from include list", () => {
|
|
5
|
+
const a = {
|
|
6
|
+
optimizeDeps: {
|
|
7
|
+
include: ["react", "react-native-reanimated", "lodash"],
|
|
8
|
+
exclude: []
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
deepMergeOptimizeDeps(a, {
|
|
12
|
+
optimizeDeps: {
|
|
13
|
+
exclude: ["react-native-reanimated"]
|
|
14
|
+
}
|
|
15
|
+
}), expect(a.optimizeDeps.include).toContain("react"), expect(a.optimizeDeps.include).toContain("lodash"), expect(a.optimizeDeps.include).not.toContain("react-native-reanimated"), expect(a.optimizeDeps.exclude).toContain("react-native-reanimated");
|
|
16
|
+
}), it("filters excluded deps from noExternal list", () => {
|
|
17
|
+
const a = {
|
|
18
|
+
optimizeDeps: {
|
|
19
|
+
include: ["react", "react-native-reanimated"]
|
|
20
|
+
},
|
|
21
|
+
noExternal: ["react", "react-native-reanimated"]
|
|
22
|
+
};
|
|
23
|
+
deepMergeOptimizeDeps(a, {
|
|
24
|
+
optimizeDeps: {
|
|
25
|
+
exclude: ["react-native-reanimated"]
|
|
26
|
+
}
|
|
27
|
+
}), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
|
|
28
|
+
}), it("filters excluded deps from needsInterop list", () => {
|
|
29
|
+
const a = {
|
|
30
|
+
optimizeDeps: {
|
|
31
|
+
include: [],
|
|
32
|
+
needsInterop: ["react", "react-native-reanimated"]
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
deepMergeOptimizeDeps(a, {
|
|
36
|
+
optimizeDeps: {
|
|
37
|
+
exclude: ["react-native-reanimated"]
|
|
38
|
+
}
|
|
39
|
+
}), expect(a.optimizeDeps.needsInterop).toContain("react"), expect(a.optimizeDeps.needsInterop).not.toContain("react-native-reanimated");
|
|
40
|
+
}), it("merges excludes from all sources", () => {
|
|
41
|
+
const a = {
|
|
42
|
+
optimizeDeps: {
|
|
43
|
+
exclude: ["a"]
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
deepMergeOptimizeDeps(a, {
|
|
47
|
+
optimizeDeps: {
|
|
48
|
+
exclude: ["b"]
|
|
49
|
+
}
|
|
50
|
+
}, {
|
|
51
|
+
include: [],
|
|
52
|
+
exclude: ["c"],
|
|
53
|
+
needsInterop: [],
|
|
54
|
+
esbuildOptions: { resolveExtensions: [] }
|
|
55
|
+
}), expect(a.optimizeDeps.exclude).toContain("a"), expect(a.optimizeDeps.exclude).toContain("b"), expect(a.optimizeDeps.exclude).toContain("c");
|
|
56
|
+
}), it("preserves noExternal: true when set", () => {
|
|
57
|
+
const a = {
|
|
58
|
+
optimizeDeps: {},
|
|
59
|
+
noExternal: !0
|
|
60
|
+
};
|
|
61
|
+
deepMergeOptimizeDeps(a, {
|
|
62
|
+
optimizeDeps: {
|
|
63
|
+
exclude: ["react-native-reanimated"]
|
|
64
|
+
}
|
|
65
|
+
}), expect(a.noExternal).toBe(!0);
|
|
66
|
+
}), it("handles RegExp in noExternal", () => {
|
|
67
|
+
const regex = /some-pattern/, a = {
|
|
68
|
+
optimizeDeps: {
|
|
69
|
+
include: ["react", "react-native-reanimated"]
|
|
70
|
+
},
|
|
71
|
+
noExternal: [regex, "react", "react-native-reanimated"]
|
|
72
|
+
};
|
|
73
|
+
deepMergeOptimizeDeps(a, {
|
|
74
|
+
optimizeDeps: {
|
|
75
|
+
exclude: ["react-native-reanimated"]
|
|
76
|
+
}
|
|
77
|
+
}), expect(a.noExternal).toContain(regex), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=mergeUserConfig.test.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/config/mergeUserConfig.test.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { deepMergeOptimizeDeps } from "./mergeUserConfig.mjs";
|
|
3
|
+
describe("deepMergeOptimizeDeps", () => {
|
|
4
|
+
it("filters excluded deps from include list", () => {
|
|
5
|
+
const a = {
|
|
6
|
+
optimizeDeps: {
|
|
7
|
+
include: ["react", "react-native-reanimated", "lodash"],
|
|
8
|
+
exclude: []
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
deepMergeOptimizeDeps(a, {
|
|
12
|
+
optimizeDeps: {
|
|
13
|
+
exclude: ["react-native-reanimated"]
|
|
14
|
+
}
|
|
15
|
+
}), expect(a.optimizeDeps.include).toContain("react"), expect(a.optimizeDeps.include).toContain("lodash"), expect(a.optimizeDeps.include).not.toContain("react-native-reanimated"), expect(a.optimizeDeps.exclude).toContain("react-native-reanimated");
|
|
16
|
+
}), it("filters excluded deps from noExternal list", () => {
|
|
17
|
+
const a = {
|
|
18
|
+
optimizeDeps: {
|
|
19
|
+
include: ["react", "react-native-reanimated"]
|
|
20
|
+
},
|
|
21
|
+
noExternal: ["react", "react-native-reanimated"]
|
|
22
|
+
};
|
|
23
|
+
deepMergeOptimizeDeps(a, {
|
|
24
|
+
optimizeDeps: {
|
|
25
|
+
exclude: ["react-native-reanimated"]
|
|
26
|
+
}
|
|
27
|
+
}), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
|
|
28
|
+
}), it("filters excluded deps from needsInterop list", () => {
|
|
29
|
+
const a = {
|
|
30
|
+
optimizeDeps: {
|
|
31
|
+
include: [],
|
|
32
|
+
needsInterop: ["react", "react-native-reanimated"]
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
deepMergeOptimizeDeps(a, {
|
|
36
|
+
optimizeDeps: {
|
|
37
|
+
exclude: ["react-native-reanimated"]
|
|
38
|
+
}
|
|
39
|
+
}), expect(a.optimizeDeps.needsInterop).toContain("react"), expect(a.optimizeDeps.needsInterop).not.toContain("react-native-reanimated");
|
|
40
|
+
}), it("merges excludes from all sources", () => {
|
|
41
|
+
const a = {
|
|
42
|
+
optimizeDeps: {
|
|
43
|
+
exclude: ["a"]
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
deepMergeOptimizeDeps(a, {
|
|
47
|
+
optimizeDeps: {
|
|
48
|
+
exclude: ["b"]
|
|
49
|
+
}
|
|
50
|
+
}, {
|
|
51
|
+
include: [],
|
|
52
|
+
exclude: ["c"],
|
|
53
|
+
needsInterop: [],
|
|
54
|
+
esbuildOptions: {
|
|
55
|
+
resolveExtensions: []
|
|
56
|
+
}
|
|
57
|
+
}), expect(a.optimizeDeps.exclude).toContain("a"), expect(a.optimizeDeps.exclude).toContain("b"), expect(a.optimizeDeps.exclude).toContain("c");
|
|
58
|
+
}), it("preserves noExternal: true when set", () => {
|
|
59
|
+
const a = {
|
|
60
|
+
optimizeDeps: {},
|
|
61
|
+
noExternal: !0
|
|
62
|
+
};
|
|
63
|
+
deepMergeOptimizeDeps(a, {
|
|
64
|
+
optimizeDeps: {
|
|
65
|
+
exclude: ["react-native-reanimated"]
|
|
66
|
+
}
|
|
67
|
+
}), expect(a.noExternal).toBe(!0);
|
|
68
|
+
}), it("handles RegExp in noExternal", () => {
|
|
69
|
+
const regex = /some-pattern/,
|
|
70
|
+
a = {
|
|
71
|
+
optimizeDeps: {
|
|
72
|
+
include: ["react", "react-native-reanimated"]
|
|
73
|
+
},
|
|
74
|
+
noExternal: [regex, "react", "react-native-reanimated"]
|
|
75
|
+
};
|
|
76
|
+
deepMergeOptimizeDeps(a, {
|
|
77
|
+
optimizeDeps: {
|
|
78
|
+
exclude: ["react-native-reanimated"]
|
|
79
|
+
}
|
|
80
|
+
}), expect(a.noExternal).toContain(regex), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=mergeUserConfig.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","deepMergeOptimizeDeps","a","optimizeDeps","include","exclude","toContain","not","noExternal","needsInterop","esbuildOptions","resolveExtensions","toBe","regex"],"sources":["../../src/config/mergeUserConfig.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { deepMergeOptimizeDeps } from "./mergeUserConfig.native.js";
|
|
3
|
+
describe("deepMergeOptimizeDeps", function () {
|
|
4
|
+
it("filters excluded deps from include list", function () {
|
|
5
|
+
var a = {
|
|
6
|
+
optimizeDeps: {
|
|
7
|
+
include: ["react", "react-native-reanimated", "lodash"],
|
|
8
|
+
exclude: []
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
b = {
|
|
12
|
+
optimizeDeps: {
|
|
13
|
+
exclude: ["react-native-reanimated"]
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
deepMergeOptimizeDeps(a, b), expect(a.optimizeDeps.include).toContain("react"), expect(a.optimizeDeps.include).toContain("lodash"), expect(a.optimizeDeps.include).not.toContain("react-native-reanimated"), expect(a.optimizeDeps.exclude).toContain("react-native-reanimated");
|
|
17
|
+
}), it("filters excluded deps from noExternal list", function () {
|
|
18
|
+
var a = {
|
|
19
|
+
optimizeDeps: {
|
|
20
|
+
include: ["react", "react-native-reanimated"]
|
|
21
|
+
},
|
|
22
|
+
noExternal: ["react", "react-native-reanimated"]
|
|
23
|
+
},
|
|
24
|
+
b = {
|
|
25
|
+
optimizeDeps: {
|
|
26
|
+
exclude: ["react-native-reanimated"]
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
deepMergeOptimizeDeps(a, b), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
|
|
30
|
+
}), it("filters excluded deps from needsInterop list", function () {
|
|
31
|
+
var a = {
|
|
32
|
+
optimizeDeps: {
|
|
33
|
+
include: [],
|
|
34
|
+
needsInterop: ["react", "react-native-reanimated"]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
b = {
|
|
38
|
+
optimizeDeps: {
|
|
39
|
+
exclude: ["react-native-reanimated"]
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
deepMergeOptimizeDeps(a, b), expect(a.optimizeDeps.needsInterop).toContain("react"), expect(a.optimizeDeps.needsInterop).not.toContain("react-native-reanimated");
|
|
43
|
+
}), it("merges excludes from all sources", function () {
|
|
44
|
+
var a = {
|
|
45
|
+
optimizeDeps: {
|
|
46
|
+
exclude: ["a"]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
b = {
|
|
50
|
+
optimizeDeps: {
|
|
51
|
+
exclude: ["b"]
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
extra = {
|
|
55
|
+
include: [],
|
|
56
|
+
exclude: ["c"],
|
|
57
|
+
needsInterop: [],
|
|
58
|
+
esbuildOptions: {
|
|
59
|
+
resolveExtensions: []
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
deepMergeOptimizeDeps(a, b, extra), expect(a.optimizeDeps.exclude).toContain("a"), expect(a.optimizeDeps.exclude).toContain("b"), expect(a.optimizeDeps.exclude).toContain("c");
|
|
63
|
+
}), it("preserves noExternal: true when set", function () {
|
|
64
|
+
var a = {
|
|
65
|
+
optimizeDeps: {},
|
|
66
|
+
noExternal: !0
|
|
67
|
+
},
|
|
68
|
+
b = {
|
|
69
|
+
optimizeDeps: {
|
|
70
|
+
exclude: ["react-native-reanimated"]
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
deepMergeOptimizeDeps(a, b), expect(a.noExternal).toBe(!0);
|
|
74
|
+
}), it("handles RegExp in noExternal", function () {
|
|
75
|
+
var regex = /some-pattern/,
|
|
76
|
+
a = {
|
|
77
|
+
optimizeDeps: {
|
|
78
|
+
include: ["react", "react-native-reanimated"]
|
|
79
|
+
},
|
|
80
|
+
noExternal: [regex, "react", "react-native-reanimated"]
|
|
81
|
+
},
|
|
82
|
+
b = {
|
|
83
|
+
optimizeDeps: {
|
|
84
|
+
exclude: ["react-native-reanimated"]
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
deepMergeOptimizeDeps(a, b), expect(a.noExternal).toContain(regex), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=mergeUserConfig.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","deepMergeOptimizeDeps","a","optimizeDeps","include","exclude","b","toContain","not","noExternal","needsInterop","extra","esbuildOptions","resolveExtensions"],"sources":["../../src/config/mergeUserConfig.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,qBAAA,QAA6B;AAEtCH,QAAA,CAAS,yBAAyB,YAAM;EACtCE,EAAA,CAAG,2CAA2C,YAAM;IAClD,IAAAE,CAAA,GAAM;QACJC,YAAA,EAAc;UACZC,OAAA,EAAS,CACT,OAAS,EACX,2BACF,SAOA;UALEC,OAAA;QAAc;MACuB;MACrCC,CAAA;QAGwBH,YAEjB;UAMXE,OAAG,GACK,yBAAI;QACM;MACgC;IAC9CJ,qBACa,CAAAC,CAAA,EAASI,CAAA,GAAAP,MAAA,CAAAG,CAAA,CAAAC,YAAyB,CAAAC,OAAA,EAAAG,SAAA,WAAAR,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAC,OAAA,EAAAG,SAAA,YAAAR,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAC,OAAA,EAAAI,GAAA,CAAAD,SAAA,6BAAAR,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAE,OAAA,EAAAE,SAAA;EAAA,EACjD,EAAAP,EAAA;IAOA,IAAAE,CAAA;QALEC,YAAA,EAAc;UACZC,OAAA,EAAS,CACX,SAKF,yBAAqB;QAKrB;QACEK,UAAA,GACE,SACA,yBAAwB;MAE5B;MAAAH,CAAA;QAOAH,YAAA;UALEE,OAAA,GACE,yBAAU;QAIY;MAI3B;IAGCJ,qBAAU,CAAAC,CAAA,EAAAI,CAAA,GAAAP,MAAA,CAAAG,CAAA,CAAAO,UAAA,EAAAF,SAAA,WAAAR,MAAA,CAAAG,CAAA,CAAAO,UAAA,EAAAD,GAAA,CAAAD,SAAA;EAAA,IACRP,EAAA,+CAAc;IAAA,IACZE,CAAA;QACFC,YAAA;UACFC,OAAA;UAaAM,YAAA,GAXE,SACE,yBAAa;QAEjB;MACc;MACZJ,CAAA;QACAH,YAAU,EAAG;UACbE,OAAA,GACA,yBAAkB;QAUtB;MACE;IAAUJ,qBACO,CAAAC,CAAA,EAAAI,CAAA,GAAAP,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAO,YAAA,EAAAH,SAAA,WAAAR,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAO,YAAA,EAAAF,GAAA,CAAAD,SAAA;EAAA,IACfP,EAAA,mCAAY;IACd,IAAAE,CAAA;QAOAC,YAAA;UALEE,OAAA,GACE;QAIsB;MAG3B;MAEDC,CAAA,GAAG;QACDH,YAAc;UAEZE,OAAA,GACE;QAEF;MACF;MAAAM,KAAA;QAOAP,OAAA;QALEC,OAAA,GACE,IACF;QAGwBK,YAGjB;QAGVE,cAAA;UACFC,iBAAA","ignoreList":[]}
|
|
@@ -13,12 +13,14 @@ function autoDepOptimizePlugin(props) {
|
|
|
13
13
|
return {
|
|
14
14
|
name,
|
|
15
15
|
enforce: "pre",
|
|
16
|
-
async config(
|
|
16
|
+
async config(cfg, env) {
|
|
17
17
|
debug?.("Config hook called");
|
|
18
|
-
const depsConfig = globalThis.__oneOptions?.deps, exclude = depsConfig ? Object.entries(depsConfig).filter(([
|
|
18
|
+
const depsConfig = globalThis.__oneOptions?.deps, exclude = depsConfig ? Object.entries(depsConfig).filter(([_, value]) => value === !1).map(([k]) => k) : [], userExcludes = Array.isArray(props.exclude) ? props.exclude : [props.exclude], userViteExcludes = cfg.optimizeDeps?.exclude || [], userSsrExcludes = cfg.ssr?.optimizeDeps?.exclude || [], finalConfig = await getScannedOptimizeDepsConfig({
|
|
19
19
|
...props,
|
|
20
20
|
mode: env.mode,
|
|
21
|
-
exclude: [...exclude, ...userExcludes].filter(
|
|
21
|
+
exclude: [...exclude, ...userExcludes, ...userViteExcludes, ...userSsrExcludes].filter(
|
|
22
|
+
Boolean
|
|
23
|
+
)
|
|
22
24
|
});
|
|
23
25
|
return debugDetails?.(
|
|
24
26
|
`Final auto-dep-optimize config: ${JSON.stringify(finalConfig, null, 2)}
|
|
@@ -30,13 +32,15 @@ from props: ${JSON.stringify(props)}`
|
|
|
30
32
|
const getSSRExternalsCachePath = (root) => path.join(getCacheDir(root), "deps-to-pre-bundle-for-ssr-cache.json");
|
|
31
33
|
async function getScannedOptimizeDepsConfig(props) {
|
|
32
34
|
const result = await findDepsToOptimize(props);
|
|
33
|
-
|
|
35
|
+
props.onScannedDeps?.(result);
|
|
36
|
+
const excludeStrings = (Array.isArray(props.exclude) ? props.exclude : [props.exclude]).filter((e) => typeof e == "string"), excludeSet = new Set(excludeStrings), filteredDeps = result.prebundleDeps.filter((dep) => !excludeSet.has(dep));
|
|
37
|
+
return {
|
|
34
38
|
ssr: {
|
|
35
39
|
optimizeDeps: {
|
|
36
|
-
include:
|
|
40
|
+
include: filteredDeps,
|
|
37
41
|
exclude: EXCLUDE_LIST
|
|
38
42
|
},
|
|
39
|
-
noExternal:
|
|
43
|
+
noExternal: filteredDeps
|
|
40
44
|
}
|
|
41
45
|
};
|
|
42
46
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/plugins/autoDepOptimizePlugin.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,sBAAsB;AAC/B,OAAO,aAAa;AACpB,OAAO,UAAU;AACjB,SAAS,oBAAiC;AAE1C;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AACP,SAAS,aAAa,kBAAkB;AACxC,SAAS,mBAAmB;AAE5B,MAAM,OAAO,0BAEP,EAAE,OAAO,aAAa,IAAI,eAAe,IAAI;AAO5C,SAAS,sBAAsB,OAAgC;AACpE,SAAO;AAAA,IACL;AAAA,IACA,SAAS;AAAA,IAET,MAAM,OAAO,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -14,15 +14,17 @@ function autoDepOptimizePlugin(props) {
|
|
|
14
14
|
return {
|
|
15
15
|
name,
|
|
16
16
|
enforce: "pre",
|
|
17
|
-
async config(
|
|
17
|
+
async config(cfg, env) {
|
|
18
18
|
debug?.("Config hook called");
|
|
19
19
|
const depsConfig = globalThis.__oneOptions?.deps,
|
|
20
|
-
exclude = depsConfig ? Object.entries(depsConfig).filter(([
|
|
20
|
+
exclude = depsConfig ? Object.entries(depsConfig).filter(([_, value]) => value === !1).map(([k]) => k) : [],
|
|
21
21
|
userExcludes = Array.isArray(props.exclude) ? props.exclude : [props.exclude],
|
|
22
|
+
userViteExcludes = cfg.optimizeDeps?.exclude || [],
|
|
23
|
+
userSsrExcludes = cfg.ssr?.optimizeDeps?.exclude || [],
|
|
22
24
|
finalConfig = await getScannedOptimizeDepsConfig({
|
|
23
25
|
...props,
|
|
24
26
|
mode: env.mode,
|
|
25
|
-
exclude: [...exclude, ...userExcludes].filter(Boolean)
|
|
27
|
+
exclude: [...exclude, ...userExcludes, ...userViteExcludes, ...userSsrExcludes].filter(Boolean)
|
|
26
28
|
});
|
|
27
29
|
return debugDetails?.(`Final auto-dep-optimize config: ${JSON.stringify(finalConfig, null, 2)}
|
|
28
30
|
from props: ${JSON.stringify(props)}`), finalConfig;
|
|
@@ -32,13 +34,17 @@ from props: ${JSON.stringify(props)}`), finalConfig;
|
|
|
32
34
|
const getSSRExternalsCachePath = root => path.join(getCacheDir(root), "deps-to-pre-bundle-for-ssr-cache.json");
|
|
33
35
|
async function getScannedOptimizeDepsConfig(props) {
|
|
34
36
|
const result = await findDepsToOptimize(props);
|
|
35
|
-
|
|
37
|
+
props.onScannedDeps?.(result);
|
|
38
|
+
const excludeStrings = (Array.isArray(props.exclude) ? props.exclude : [props.exclude]).filter(e => typeof e == "string"),
|
|
39
|
+
excludeSet = new Set(excludeStrings),
|
|
40
|
+
filteredDeps = result.prebundleDeps.filter(dep => !excludeSet.has(dep));
|
|
41
|
+
return {
|
|
36
42
|
ssr: {
|
|
37
43
|
optimizeDeps: {
|
|
38
|
-
include:
|
|
44
|
+
include: filteredDeps,
|
|
39
45
|
exclude: EXCLUDE_LIST
|
|
40
46
|
},
|
|
41
|
-
noExternal:
|
|
47
|
+
noExternal: filteredDeps
|
|
42
48
|
}
|
|
43
49
|
};
|
|
44
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createDebugger","FSExtra","path","createFilter","EXCLUDE_LIST","scanDepsToOptimize","getFileHash","lookupFile","getCacheDir","name","debug","debugDetails","autoDepOptimizePlugin","props","enforce","config","
|
|
1
|
+
{"version":3,"names":["createDebugger","FSExtra","path","createFilter","EXCLUDE_LIST","scanDepsToOptimize","getFileHash","lookupFile","getCacheDir","name","debug","debugDetails","autoDepOptimizePlugin","props","enforce","config","cfg","env","depsConfig","globalThis","__oneOptions","deps","exclude","Object","entries","filter","_","value","map","k","userExcludes","Array","isArray","userViteExcludes","optimizeDeps","userSsrExcludes","ssr","finalConfig","getScannedOptimizeDepsConfig","mode","Boolean","JSON","stringify","getSSRExternalsCachePath","root","join","result","findDepsToOptimize","onScannedDeps","excludeStrings","e","excludeSet","Set","filteredDeps","prebundleDeps","dep","has","include","noExternal","sessionCacheVal","cacheFilePath","startedAt","Date","now","noCache","sessionCache","lockFile","lockFileHash","cachedLockFileHash","depsToPreBundleForSsr","cachedDepsToPreBundle","readJSON","err","outputJSON","length","namespace"],"sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,cAAA,QAAsB;AAC/B,OAAOC,OAAA,MAAa;AACpB,OAAOC,IAAA,MAAU;AACjB,SAASC,YAAA,QAAiC;AAE1C,SACEC,YAAA,EAEAC,kBAAA,QACK;AACP,SAASC,WAAA,EAAaC,UAAA,QAAkB;AACxC,SAASC,WAAA,QAAmB;AAE5B,MAAMC,IAAA,GAAO;EAEP;IAAEC,KAAA;IAAOC;EAAa,IAAIX,cAAA,CAAeS,IAAI;AAO5C,SAASG,sBAAsBC,KAAA,EAAgC;EACpE,OAAO;IACLJ,IAAA;IACAK,OAAA,EAAS;IAET,MAAMC,OAAOC,GAAA,EAAKC,GAAA,EAAK;MACrBP,KAAA,GAAQ,oBAAoB;MAI5B,MAAMQ,UAAA,GADcC,UAAA,CAAWC,YAAA,EACCC,IAAA;QAE1BC,OAAA,GAAUJ,UAAA,GACZK,MAAA,CAAOC,OAAA,CAAQN,UAAU,EACtBO,MAAA,CAAO,CAAC,CAACC,CAAA,EAAGC,KAAK,MAAMA,KAAA,KAAU,EAAK,EACtCC,GAAA,CAAI,CAAC,CAACC,CAAC,MAAMA,CAAC,IACjB,EAAC;QAECC,YAAA,GAAeC,KAAA,CAAMC,OAAA,CAAQnB,KAAA,CAAMS,OAAO,IAAIT,KAAA,CAAMS,OAAA,GAAU,CAACT,KAAA,CAAMS,OAAO;QAG5EW,gBAAA,GAAmBjB,GAAA,CAAIkB,YAAA,EAAcZ,OAAA,IAAW,EAAC;QACjDa,eAAA,GAAkBnB,GAAA,CAAIoB,GAAA,EAAKF,YAAA,EAAcZ,OAAA,IAAW,EAAC;QAErDe,WAAA,GAAc,MAAMC,4BAAA,CAA6B;UACrD,GAAGzB,KAAA;UACH0B,IAAA,EAAMtB,GAAA,CAAIsB,IAAA;UACVjB,OAAA,EAAS,CAAC,GAAGA,OAAA,EAAS,GAAGQ,YAAA,EAAc,GAAGG,gBAAA,EAAkB,GAAGE,eAAe,EAAEV,MAAA,CAC9Ee,OACF;QACF,CAAC;MAED,OAAA7B,YAAA,GACE,mCAAmC8B,IAAA,CAAKC,SAAA,CAAUL,WAAA,EAAa,MAAM,CAAC,CAAC;AAAA,cAAiBI,IAAA,CAAKC,SAAA,CAAU7B,KAAK,CAAC,EAC/G,GAEOwB,WAAA;IACT;EACF;AACF;AAEO,MAAMM,wBAAA,GAA4BC,IAAA,IAChC1C,IAAA,CAAK2C,IAAA,CAAKrC,WAAA,CAAYoC,IAAI,GAAG,uCAAuC;AAK7E,eAAsBN,6BAA6BzB,KAAA,EAA8B;EAC/E,MAAMiC,MAAA,GAAS,MAAMC,kBAAA,CAAmBlC,KAAK;EAE7CA,KAAA,CAAMmC,aAAA,GAAgBF,MAAM;EAK5B,MAAMG,cAAA,IADelB,KAAA,CAAMC,OAAA,CAAQnB,KAAA,CAAMS,OAAO,IAAIT,KAAA,CAAMS,OAAA,GAAU,CAACT,KAAA,CAAMS,OAAO,GAC9CG,MAAA,CAAQyB,CAAA,IAAmB,OAAOA,CAAA,IAAM,QAAQ;IAC9EC,UAAA,GAAa,IAAIC,GAAA,CAAIH,cAAc;IAEnCI,YAAA,GAAeP,MAAA,CAAOQ,aAAA,CAAc7B,MAAA,CAAQ8B,GAAA,IAAQ,CAACJ,UAAA,CAAWK,GAAA,CAAID,GAAG,CAAC;EAE9E,OAAO;IACLnB,GAAA,EAAK;MACHF,YAAA,EAAc;QACZuB,OAAA,EAASJ,YAAA;QACT/B,OAAA,EAASlB;MACX;MACAsD,UAAA,EAAYL;IACd;EACF;AACF;AAEA,IAAIM,eAAA,GAAyC;AAE7C,eAAsBZ,mBAAmB;EACvCH,IAAA;EACAL,IAAA;EACAjB,OAAA;EACAmC;AACF,GAA0B;EACxB,MAAMG,aAAA,GAAgBjB,wBAAA,CAAyBC,IAAI;IAC7CiB,SAAA,GAAYnD,KAAA,GAAQoD,IAAA,CAAKC,GAAA,CAAI,IAAI;IAGjCC,OAAA,GAAUzB,IAAA,KAAS;IAGnB0B,YAAA,GAAe1B,IAAA,KAAS;EAE9B,IAAI0B,YAAA,IAAgBN,eAAA,EAClB,OAAOA,eAAA;EAGT,MAAMO,QAAA,GAAW,MAAM3D,UAAA,CAAWqC,IAAA,EAAM,CACtC,aACA,qBACA,kBACA,YACD;IAEKuB,YAAA,GAAeD,QAAA,GAAW,MAAM5D,WAAA,CAAY4D,QAAQ,IAAI;EAE9D,IAAIvC,KAAA;EAEJ,IAAIwC,YAAA,IAAgB,CAACH,OAAA,EACnB,IAAI;IACF,MAAM;MACJG,YAAA,EAAcC,kBAAA;MACdC,qBAAA,EAAuBC;IACzB,IAAI,MAAMrE,OAAA,CAAQsE,QAAA,CAASX,aAAa;IAGtCO,YAAA,KAAiBC,kBAAA,IACfE,qBAAA,IACF,mBAAmBA,qBAAA,KAEnB3C,KAAA,GAAQ2C,qBAAA,EACR5D,KAAA,GAAQ,kCAAkCkD,aAAa,EAAE;EAE7D,SAASY,GAAA,EAAK;IACZ9D,KAAA,GAAQ,GAAG8D,GAAG,EAAE;EAClB;EAGF,MAAM/C,MAAA,GAAStB,YAAA,CAAasD,OAAA,EAASnC,OAAO;EAE5C,OAAKK,KAAA,KACHA,KAAA,GAAQ,MAAMtB,kBAAA,CAAmB,GAAGuC,IAAI,iBAAiB;IAAEnB;EAAO,CAAC,GAE/DwC,YAAA,KACFN,eAAA,GAAkBhC,KAAA,GAGfqC,OAAA,IACE/D,OAAA,CAAQwE,UAAA,CAAWb,aAAA,EAAe;IACrCO,YAAA;IACAE,qBAAA,EAAuB1C;EACzB,CAAC,IAILjB,KAAA,GAAQ,yBAAyBoD,IAAA,CAAKC,GAAA,CAAI,IAAIF,SAAS,IAAI,GAC3DnD,KAAA,GACE,GAAGiB,KAAA,CAAM2B,aAAA,CAAcoB,MAAM,2DAC1B/D,YAAA,GACG,KACA,uCAAuCD,KAAA,CAAMiE,SAAS,2BAC9D,GAEAhE,YAAA,GACE,8CAA8CgB,KAAA,CAAM2B,aAAA,CAAcT,IAAA,CAAK,IAAI,CAAC,EAC9E,GAEOlB,KAAA;AACT","ignoreList":[]}
|
|
@@ -14,22 +14,25 @@ function autoDepOptimizePlugin(props) {
|
|
|
14
14
|
return {
|
|
15
15
|
name,
|
|
16
16
|
enforce: "pre",
|
|
17
|
-
async config(
|
|
17
|
+
async config(cfg, env) {
|
|
18
|
+
var _cfg_optimizeDeps, _cfg_ssr_optimizeDeps, _cfg_ssr;
|
|
18
19
|
debug?.("Config hook called");
|
|
19
20
|
var userOptions = globalThis.__oneOptions,
|
|
20
21
|
depsConfig = userOptions?.deps,
|
|
21
22
|
exclude = depsConfig ? Object.entries(depsConfig).filter(function (param) {
|
|
22
|
-
var [
|
|
23
|
+
var [_, value] = param;
|
|
23
24
|
return value === !1;
|
|
24
25
|
}).map(function (param) {
|
|
25
26
|
var [k] = param;
|
|
26
27
|
return k;
|
|
27
28
|
}) : [],
|
|
28
29
|
userExcludes = Array.isArray(props.exclude) ? props.exclude : [props.exclude],
|
|
30
|
+
userViteExcludes = ((_cfg_optimizeDeps = cfg.optimizeDeps) === null || _cfg_optimizeDeps === void 0 ? void 0 : _cfg_optimizeDeps.exclude) || [],
|
|
31
|
+
userSsrExcludes = ((_cfg_ssr = cfg.ssr) === null || _cfg_ssr === void 0 || (_cfg_ssr_optimizeDeps = _cfg_ssr.optimizeDeps) === null || _cfg_ssr_optimizeDeps === void 0 ? void 0 : _cfg_ssr_optimizeDeps.exclude) || [],
|
|
29
32
|
finalConfig = await getScannedOptimizeDepsConfig({
|
|
30
33
|
...props,
|
|
31
34
|
mode: env.mode,
|
|
32
|
-
exclude: [...exclude, ...userExcludes].filter(Boolean)
|
|
35
|
+
exclude: [...exclude, ...userExcludes, ...userViteExcludes, ...userSsrExcludes].filter(Boolean)
|
|
33
36
|
});
|
|
34
37
|
return debugDetails?.(`Final auto-dep-optimize config: ${JSON.stringify(finalConfig, null, 2)}
|
|
35
38
|
from props: ${JSON.stringify(props)}`), finalConfig;
|
|
@@ -42,13 +45,22 @@ var getSSRExternalsCachePath = function (root) {
|
|
|
42
45
|
async function getScannedOptimizeDepsConfig(props) {
|
|
43
46
|
var _props_onScannedDeps,
|
|
44
47
|
result = await findDepsToOptimize(props);
|
|
45
|
-
|
|
48
|
+
(_props_onScannedDeps = props.onScannedDeps) === null || _props_onScannedDeps === void 0 || _props_onScannedDeps.call(props, result);
|
|
49
|
+
var excludeArray = Array.isArray(props.exclude) ? props.exclude : [props.exclude],
|
|
50
|
+
excludeStrings = excludeArray.filter(function (e) {
|
|
51
|
+
return typeof e == "string";
|
|
52
|
+
}),
|
|
53
|
+
excludeSet = new Set(excludeStrings),
|
|
54
|
+
filteredDeps = result.prebundleDeps.filter(function (dep) {
|
|
55
|
+
return !excludeSet.has(dep);
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
46
58
|
ssr: {
|
|
47
59
|
optimizeDeps: {
|
|
48
|
-
include:
|
|
60
|
+
include: filteredDeps,
|
|
49
61
|
exclude: EXCLUDE_LIST
|
|
50
62
|
},
|
|
51
|
-
noExternal:
|
|
63
|
+
noExternal: filteredDeps
|
|
52
64
|
}
|
|
53
65
|
};
|
|
54
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createDebugger","FSExtra","path","createFilter","EXCLUDE_LIST","scanDepsToOptimize","getFileHash","lookupFile","getCacheDir","name","debug","debugDetails","autoDepOptimizePlugin","props","enforce","config","
|
|
1
|
+
{"version":3,"names":["createDebugger","FSExtra","path","createFilter","EXCLUDE_LIST","scanDepsToOptimize","getFileHash","lookupFile","getCacheDir","name","debug","debugDetails","autoDepOptimizePlugin","props","enforce","config","cfg","env","_cfg_optimizeDeps","_cfg_ssr_optimizeDeps","_cfg_ssr","userOptions","globalThis","__oneOptions","depsConfig","deps","exclude","Object","entries","filter","param","_","value","map","k","userExcludes","Array","isArray","userViteExcludes","optimizeDeps","userSsrExcludes","ssr","finalConfig","getScannedOptimizeDepsConfig","mode","Boolean","JSON","stringify","getSSRExternalsCachePath","root","join","_props_onScannedDeps","result","findDepsToOptimize","onScannedDeps","call","excludeArray","excludeStrings","e","excludeSet","Set","filteredDeps","prebundleDeps","dep","has","include","noExternal","sessionCacheVal","cacheFilePath","startedAt","Date","now","noCache","sessionCache","lockFile","lockFileHash","cachedLockFileHash","depsToPreBundleForSsr","cachedDepsToPreBundle","readJSON","err","outputJSON"],"sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,cAAA,QAAsB;AAC/B,OAAOC,OAAA,MAAa;AACpB,OAAOC,IAAA,MAAU;AACjB,SAASC,YAAA,QAAiC;AAE1C,SAAAC,YAAA,EAAAC,kBAAA;AAAA,SACEC,WAAA,EAAAC,UAAA;AAAA,SAEAC,WAAA;AAAA,IAAAC,IACK;EAAA;IAAAC,KAAA;IAAAC;EAAA,IAAAX,cAAA,CAAAS,IAAA;AACP,SAASG,qBAAaA,CAAAC,KAAA;EACtB,OAAS;IAETJ,IAAM;IASCK,OAAS;IACd,MAAOC,OAAAC,GAAA,EAAAC,GAAA;MACL,IAAAC,iBAAA,EAAAC,qBAAA,EAAAC,QAAA;MACAV,KAAA,GAAS;MAET,IAAMW,WAAO,GAAKC,UAAK,CAAAC,YAAA;QAAAC,UAAA,GAAAH,WAAA,EAAAI,IAAA;QAAAC,OAAA,GAAAF,UAAA,GAAAG,MAAA,CAAAC,OAAA,CAAAJ,UAAA,EAAAK,MAAA,WAAAC,KAAA;UACrB,KAAAC,CAAQ,EAAAC,KAAA,IAAAF,KAAA;UAIR,OAAME,KAAA,KADc;QAemC,EACrD,CAAAC,GAAG,WAAAH,KAAA;UACH,KAAAI,CAAM,IAAIJ,KAAA;UACV,OAAAI,CAAA;QAAgF,KAC9E;QAAAC,YAAA,GAAAC,KAAA,CAAAC,OAAA,CAAAxB,KAAA,CAAAa,OAAA,IAAAb,KAAA,CAAAa,OAAA,IACFb,KAAA,CAAAa,OAAA,CACD;QAAAY,gBAAA,KAAApB,iBAAA,GAAAF,GAAA,CAAAuB,YAAA,cAAArB,iBAAA,uBAAAA,iBAAA,CAAAQ,OAAA;QAAAc,eAAA,KAAApB,QAAA,GAAAJ,GAAA,CAAAyB,GAAA,cAAArB,QAAA,gBAAAD,qBAAA,GAAAC,QAAA,CAAAmB,YAAA,cAAApB,qBAAA,uBAAAA,qBAAA,CAAAO,OAAA;QAAAgB,WAAA,SAAAC,4BAAA;UAED,GAAA9B,KAAA;UACE+B,IAAA,EAAA3B,GAAA,CAAA2B,IAAA;UAAuElB,OAAiB,GAGnF,GAAAA,OAAA,EACT,GAAAS,YAAA,EACF,GAAAG,gBAAA,EACF,GAAAE,eAAA,CAEa,CAAAX,MAAA,CAAAgB,OAAA;QAMb;MACE,OAAMlC,YAAe,sCAAwBmC,IAAA,CAAAC,SAAA,CAAAL,WAAA;AAE7C,cAAMI,IAAA,CAAAC,SAAgB,CAAAlC,KAAM,MAAA6B,WAAA;IAK5B;EAKA;AAAO;AACA,IAAAM,wBACW,YAAAA,CAAAC,IAAA;EAAA,OACZ/C,IAAA,CAAAgD,IAAS,CAAA1C,WAAA,CAAAyC,IAAA;AAAA;AACA,eACXN,6BAAA9B,KAAA;EAAA,IACAsC,oBAAY;IAAAC,MAAA,SAAAC,kBAAA,CAAAxC,KAAA;EAAA,CAAAsC,oBACd,GAAAtC,KAAA,CAAAyC,aAAA,cAAAH,oBAAA,eAAAA,oBAAA,CAAAI,IAAA,CAAA1C,KAAA,EAAAuC,MAAA;EACF,IAAAI,YAAA,GAAApB,KAAA,CAAAC,OAAA,CAAAxB,KAAA,CAAAa,OAAA,IAAAb,KAAA,CAAAa,OAAA,IACFb,KAAA,CAAAa,OAAA,CAEA;IAAI+B,cAAA,GAAyCD,YAAA,CAAA3B,MAAA,WAAA6B,CAAA;MAE7C,cAAsBA,CAAA;IACpB;IAAAC,UAAA,OAAAC,GAAA,CAAAH,cAAA;IAAAI,YAAA,GAAAT,MAAA,CAAAU,aAAA,CAAAjC,MAAA,WAAAkC,GAAA;MACA,QAAAJ,UAAA,CAAAK,GAAA,CAAAD,GAAA;IACA;EACA;IACwBtB,GAAA;MACxBF,YAAM;QASF0B,OAAA,EAAAJ,YAAgB;QAClBnC,OAAO,EAAAtB;MAGT;MACE8D,UAAA,EAAAL;IACA;EAAA;AACA;AACA,IACDM,eAEK,GAAe;AAErB,eAAId,mBAAAvB,KAAA;EAEJ,IAAI;MAAAmB,IAAA;MAAAL,IAAA;MAAAlB,OAAiB;MAAAuC;IAAA,IAAAnC,KAAA;IAAAsC,aAAA,GAAApB,wBAAA,CAAAC,IAAA;IAAAoB,SAAA,GAAA3D,KAAA,GAAA4D,IAAA,CAAAC,GAAA;IAAAC,OAAA,GAAA5B,IAAA;IAAA6B,YAAA,GAAA7B,IAAA;EACnB,IAAA6B,YAAI,IAAAN,eAAA,EACF,OAAAA,eAAM;EAAA,IAAAO,QACJ,SAAcnE,UAAA,CAAA0C,IAAA,cACd,EAAuB,mBACf,EAEV,gBACE,EAOJ,WAAS,CACP;IAAA0B,YAAW,GAAGD,QAAE,SAAApE,WAAA,CAAAoE,QAAA;IAAA1C,KAAA;EAAA,IAClB2C,YAAA,KAAAH,OAAA,EAGF,IAAM;IAEN,IAAK;MAAAG,YACH,EAAAC,kBAAc;MAAAC,qBAA0B,EAAAC;IAEpC,UAAA7E,OACF,CAAA8E,QAAA,CAAAX,aAAkB,CAGf;IAEDO,YAAA,KAAAC,kBAAA,IAAAE,qBAAA,uBAAAA,qBAAA,KAAA9C,KAAA,GAAA8C,qBAAA,EAAApE,KAAA,qCAAA0D,aAAA;EACA,SAAAY,GAAA;IACDtE,KAIL,MAAQsE,GAAA;EAEN;EAIF,IAEAnD,MAAA,GAAA1B,YAAA,CAAA8D,OAAA,EAAAvC,OAAA;EAAA,OACEM,KAAA,KAAAA,KAAA,SAAA3B,kBAA8C,IAAA4C,IAAM,eAAc,EAAK;IACzEpB;EAGF,IAAA4C,YAAA,KAAAN,eAAA,GAAAnC,KAAA,GAAAwC,OAAA,IAAAvE,OAAA,CAAAgF,UAAA,CAAAb,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
describe("getScannedOptimizeDepsConfig", () => {
|
|
3
|
+
it("filters excluded deps from scanned results", async () => {
|
|
4
|
+
const mockResult = {
|
|
5
|
+
prebundleDeps: ["react", "react-native-reanimated", "lodash"],
|
|
6
|
+
hasReanimated: !0,
|
|
7
|
+
hasNativewind: !1
|
|
8
|
+
}, excludeStrings = ["react-native-reanimated"].filter((e) => typeof e == "string"), excludeSet = new Set(excludeStrings), filteredDeps = mockResult.prebundleDeps.filter((dep) => !excludeSet.has(dep));
|
|
9
|
+
expect(filteredDeps).toContain("react"), expect(filteredDeps).toContain("lodash"), expect(filteredDeps).not.toContain("react-native-reanimated");
|
|
10
|
+
}), it("handles RegExp exclude patterns (ignores them for dep name filtering)", async () => {
|
|
11
|
+
const mockResult = {
|
|
12
|
+
prebundleDeps: ["react", "react-native-reanimated"],
|
|
13
|
+
hasReanimated: !0,
|
|
14
|
+
hasNativewind: !1
|
|
15
|
+
}, excludeStrings = [/some-pattern/, "react-native-reanimated"].filter((e) => typeof e == "string"), excludeSet = new Set(excludeStrings), filteredDeps = mockResult.prebundleDeps.filter((dep) => !excludeSet.has(dep));
|
|
16
|
+
expect(filteredDeps).toContain("react"), expect(filteredDeps).not.toContain("react-native-reanimated");
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=autoDepOptimizePlugin.test.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/plugins/autoDepOptimizePlugin.test.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAGrC,SAAS,gCAAgC,MAAM;AAC7C,KAAG,8CAA8C,YAAY;AAE3D,UAAM,aAAa;AAAA,MACjB,eAAe,CAAC,SAAS,2BAA2B,QAAQ;AAAA,MAC5D,eAAe;AAAA,MACf,eAAe;AAAA,IACjB,GAIM,iBADe,CAAC,yBAAyB,EACX,OAAO,CAAC,MAAmB,OAAO,KAAM,QAAQ,GAC9E,aAAa,IAAI,IAAI,cAAc,GAEnC,eAAe,WAAW,cAAc,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC;AAElF,WAAO,YAAY,EAAE,UAAU,OAAO,GACtC,OAAO,YAAY,EAAE,UAAU,QAAQ,GACvC,OAAO,YAAY,EAAE,IAAI,UAAU,yBAAyB;AAAA,EAC9D,CAAC,GAED,GAAG,yEAAyE,YAAY;AACtF,UAAM,aAAa;AAAA,MACjB,eAAe,CAAC,SAAS,yBAAyB;AAAA,MAClD,eAAe;AAAA,MACf,eAAe;AAAA,IACjB,GAIM,iBADoC,CAAC,gBAAgB,yBAAyB,EAChD,OAAO,CAAC,MAAmB,OAAO,KAAM,QAAQ,GAC9E,aAAa,IAAI,IAAI,cAAc,GAEnC,eAAe,WAAW,cAAc,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC;AAElF,WAAO,YAAY,EAAE,UAAU,OAAO,GACtC,OAAO,YAAY,EAAE,IAAI,UAAU,yBAAyB;AAAA,EAC9D,CAAC;AACH,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
describe("getScannedOptimizeDepsConfig", () => {
|
|
3
|
+
it("filters excluded deps from scanned results", async () => {
|
|
4
|
+
const mockResult = {
|
|
5
|
+
prebundleDeps: ["react", "react-native-reanimated", "lodash"],
|
|
6
|
+
hasReanimated: !0,
|
|
7
|
+
hasNativewind: !1
|
|
8
|
+
},
|
|
9
|
+
excludeStrings = ["react-native-reanimated"].filter(e => typeof e == "string"),
|
|
10
|
+
excludeSet = new Set(excludeStrings),
|
|
11
|
+
filteredDeps = mockResult.prebundleDeps.filter(dep => !excludeSet.has(dep));
|
|
12
|
+
expect(filteredDeps).toContain("react"), expect(filteredDeps).toContain("lodash"), expect(filteredDeps).not.toContain("react-native-reanimated");
|
|
13
|
+
}), it("handles RegExp exclude patterns (ignores them for dep name filtering)", async () => {
|
|
14
|
+
const mockResult = {
|
|
15
|
+
prebundleDeps: ["react", "react-native-reanimated"],
|
|
16
|
+
hasReanimated: !0,
|
|
17
|
+
hasNativewind: !1
|
|
18
|
+
},
|
|
19
|
+
excludeStrings = [/some-pattern/, "react-native-reanimated"].filter(e => typeof e == "string"),
|
|
20
|
+
excludeSet = new Set(excludeStrings),
|
|
21
|
+
filteredDeps = mockResult.prebundleDeps.filter(dep => !excludeSet.has(dep));
|
|
22
|
+
expect(filteredDeps).toContain("react"), expect(filteredDeps).not.toContain("react-native-reanimated");
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=autoDepOptimizePlugin.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","mockResult","prebundleDeps","hasReanimated","hasNativewind","excludeStrings","filter","e","excludeSet","Set","filteredDeps","dep","has","toContain","not"],"sources":["../../src/plugins/autoDepOptimizePlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAGrCF,QAAA,CAAS,gCAAgC,MAAM;EAC7CE,EAAA,CAAG,8CAA8C,YAAY;IAE3D,MAAMC,UAAA,GAAa;QACjBC,aAAA,EAAe,CAAC,SAAS,2BAA2B,QAAQ;QAC5DC,aAAA,EAAe;QACfC,aAAA,EAAe;MACjB;MAIMC,cAAA,GADe,CAAC,yBAAyB,EACXC,MAAA,CAAQC,CAAA,IAAmB,OAAOA,CAAA,IAAM,QAAQ;MAC9EC,UAAA,GAAa,IAAIC,GAAA,CAAIJ,cAAc;MAEnCK,YAAA,GAAeT,UAAA,CAAWC,aAAA,CAAcI,MAAA,CAAQK,GAAA,IAAQ,CAACH,UAAA,CAAWI,GAAA,CAAID,GAAG,CAAC;IAElFZ,MAAA,CAAOW,YAAY,EAAEG,SAAA,CAAU,OAAO,GACtCd,MAAA,CAAOW,YAAY,EAAEG,SAAA,CAAU,QAAQ,GACvCd,MAAA,CAAOW,YAAY,EAAEI,GAAA,CAAID,SAAA,CAAU,yBAAyB;EAC9D,CAAC,GAEDb,EAAA,CAAG,yEAAyE,YAAY;IACtF,MAAMC,UAAA,GAAa;QACjBC,aAAA,EAAe,CAAC,SAAS,yBAAyB;QAClDC,aAAA,EAAe;QACfC,aAAA,EAAe;MACjB;MAIMC,cAAA,GADoC,CAAC,gBAAgB,yBAAyB,EAChDC,MAAA,CAAQC,CAAA,IAAmB,OAAOA,CAAA,IAAM,QAAQ;MAC9EC,UAAA,GAAa,IAAIC,GAAA,CAAIJ,cAAc;MAEnCK,YAAA,GAAeT,UAAA,CAAWC,aAAA,CAAcI,MAAA,CAAQK,GAAA,IAAQ,CAACH,UAAA,CAAWI,GAAA,CAAID,GAAG,CAAC;IAElFZ,MAAA,CAAOW,YAAY,EAAEG,SAAA,CAAU,OAAO,GACtCd,MAAA,CAAOW,YAAY,EAAEI,GAAA,CAAID,SAAA,CAAU,yBAAyB;EAC9D,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
describe("getScannedOptimizeDepsConfig", function () {
|
|
3
|
+
it("filters excluded deps from scanned results", async function () {
|
|
4
|
+
var mockResult = {
|
|
5
|
+
prebundleDeps: ["react", "react-native-reanimated", "lodash"],
|
|
6
|
+
hasReanimated: !0,
|
|
7
|
+
hasNativewind: !1
|
|
8
|
+
},
|
|
9
|
+
excludeArray = ["react-native-reanimated"],
|
|
10
|
+
excludeStrings = excludeArray.filter(function (e) {
|
|
11
|
+
return typeof e == "string";
|
|
12
|
+
}),
|
|
13
|
+
excludeSet = new Set(excludeStrings),
|
|
14
|
+
filteredDeps = mockResult.prebundleDeps.filter(function (dep) {
|
|
15
|
+
return !excludeSet.has(dep);
|
|
16
|
+
});
|
|
17
|
+
expect(filteredDeps).toContain("react"), expect(filteredDeps).toContain("lodash"), expect(filteredDeps).not.toContain("react-native-reanimated");
|
|
18
|
+
}), it("handles RegExp exclude patterns (ignores them for dep name filtering)", async function () {
|
|
19
|
+
var mockResult = {
|
|
20
|
+
prebundleDeps: ["react", "react-native-reanimated"],
|
|
21
|
+
hasReanimated: !0,
|
|
22
|
+
hasNativewind: !1
|
|
23
|
+
},
|
|
24
|
+
excludeArray = [/some-pattern/, "react-native-reanimated"],
|
|
25
|
+
excludeStrings = excludeArray.filter(function (e) {
|
|
26
|
+
return typeof e == "string";
|
|
27
|
+
}),
|
|
28
|
+
excludeSet = new Set(excludeStrings),
|
|
29
|
+
filteredDeps = mockResult.prebundleDeps.filter(function (dep) {
|
|
30
|
+
return !excludeSet.has(dep);
|
|
31
|
+
});
|
|
32
|
+
expect(filteredDeps).toContain("react"), expect(filteredDeps).not.toContain("react-native-reanimated");
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=autoDepOptimizePlugin.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","expect","it","mockResult","prebundleDeps","hasReanimated","hasNativewind","excludeArray","excludeStrings","filter","e","excludeSet","Set","filteredDeps","dep","has"],"sources":["../../src/plugins/autoDepOptimizePlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAGrCF,QAAA,CAAS,gCAAgC,YAAM;EAC7CE,EAAA,CAAG,8CAA8C,kBAAY;IAE3D,IAAAC,UAAM;QACJC,aAAA,EAAe,CACf,SACA,yBAAe,EAKX,SAKN;QAKFC,aAAG;QACDC,aAAM;MAAa;MACjBC,YAAA,GAAgB,CAChB,yBAAe;MACfC,cAAe,GAAAD,YAAA,CAAAE,MAAA,WAAAC,CAAA;QACjB,OAIM,OAAAA,CAAA,IADqC;MAM3C;MAAAC,UAAO,OAAcC,GAAA,CAAAJ,cAAiB;MACtCK,YAAO,GAAAV,UAAkB,CAAAC,aAAU,CAAAK,MAAA,WAAAK,GAAyB;QAC7D,QAAAH,UAAA,CAAAI,GAAA,CAAAD,GAAA;MACF","ignoreList":[]}
|
|
@@ -11,7 +11,7 @@ function defaultDepOptimizePlugin() {
|
|
|
11
11
|
`[${pluginName}]: Unknown env.command "${env.command}". This plugin should only be used in "build" or "serve" modes.`
|
|
12
12
|
);
|
|
13
13
|
const { optimizeDeps } = getOptimizeDeps(env.command);
|
|
14
|
-
config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr,
|
|
14
|
+
config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, config, optimizeDeps);
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
17
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/plugins/defaultDepOptimizePlugin.ts"],
|
|
4
|
-
"mappings": "AAEA,SAAS,uBAAuB;AAChC,SAAS,6BAA6B;AAEtC,MAAM,aAAa;AAUZ,SAAS,2BAAmC;AACjD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO,QAAQ,KAAK;AAClB,UAAI,IAAI,YAAY,WAAW,IAAI,YAAY;AAC7C,cAAM,IAAI;AAAA,UACR,IAAI,UAAU,2BAA2B,IAAI,OAAO;AAAA,QACtD;AAGF,YAAM,EAAE,aAAa,IAAI,gBAAgB,IAAI,OAAO;AAUpD,MAAK,OAAO,QAAK,OAAO,MAAM,CAAC,
|
|
4
|
+
"mappings": "AAEA,SAAS,uBAAuB;AAChC,SAAS,6BAA6B;AAEtC,MAAM,aAAa;AAUZ,SAAS,2BAAmC;AACjD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO,QAAQ,KAAK;AAClB,UAAI,IAAI,YAAY,WAAW,IAAI,YAAY;AAC7C,cAAM,IAAI;AAAA,UACR,IAAI,UAAU,2BAA2B,IAAI,OAAO;AAAA,QACtD;AAGF,YAAM,EAAE,aAAa,IAAI,gBAAgB,IAAI,OAAO;AAUpD,MAAK,OAAO,QAAK,OAAO,MAAM,CAAC,IAE/B,sBAAsB,OAAO,KAAK,QAAQ,YAAY;AAAA,IACxD;AAAA,EACF;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -10,7 +10,7 @@ function defaultDepOptimizePlugin() {
|
|
|
10
10
|
const {
|
|
11
11
|
optimizeDeps
|
|
12
12
|
} = getOptimizeDeps(env.command);
|
|
13
|
-
config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr,
|
|
13
|
+
config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, config, optimizeDeps);
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getOptimizeDeps","deepMergeOptimizeDeps","pluginName","defaultDepOptimizePlugin","name","enforce","config","env","command","Error","optimizeDeps","ssr"],"sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB;AAChC,SAASC,qBAAA,QAA6B;AAEtC,MAAMC,UAAA,GAAa;AAUZ,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAMF,UAAA;IACNG,OAAA,EAAS;IACTC,OAAOA,MAAA,EAAQC,GAAA,EAAK;MAClB,IAAIA,GAAA,CAAIC,OAAA,KAAY,WAAWD,GAAA,CAAIC,OAAA,KAAY,SAC7C,MAAM,IAAIC,KAAA,CACR,IAAIP,UAAU,2BAA2BK,GAAA,CAAIC,OAAO,iEACtD;MAGF,MAAM;QAAEE;MAAa,IAAIV,eAAA,CAAgBO,GAAA,CAAIC,OAAO;MAU/CF,MAAA,CAAOK,GAAA,KAAKL,MAAA,CAAOK,GAAA,GAAM,CAAC,
|
|
1
|
+
{"version":3,"names":["getOptimizeDeps","deepMergeOptimizeDeps","pluginName","defaultDepOptimizePlugin","name","enforce","config","env","command","Error","optimizeDeps","ssr"],"sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB;AAChC,SAASC,qBAAA,QAA6B;AAEtC,MAAMC,UAAA,GAAa;AAUZ,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAMF,UAAA;IACNG,OAAA,EAAS;IACTC,OAAOA,MAAA,EAAQC,GAAA,EAAK;MAClB,IAAIA,GAAA,CAAIC,OAAA,KAAY,WAAWD,GAAA,CAAIC,OAAA,KAAY,SAC7C,MAAM,IAAIC,KAAA,CACR,IAAIP,UAAU,2BAA2BK,GAAA,CAAIC,OAAO,iEACtD;MAGF,MAAM;QAAEE;MAAa,IAAIV,eAAA,CAAgBO,GAAA,CAAIC,OAAO;MAU/CF,MAAA,CAAOK,GAAA,KAAKL,MAAA,CAAOK,GAAA,GAAM,CAAC,IAE/BV,qBAAA,CAAsBK,MAAA,CAAOK,GAAA,EAAKL,MAAA,EAAQI,YAAY;IACxD;EACF;AACF","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ function defaultDepOptimizePlugin() {
|
|
|
10
10
|
var {
|
|
11
11
|
optimizeDeps
|
|
12
12
|
} = getOptimizeDeps(env.command);
|
|
13
|
-
config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr,
|
|
13
|
+
config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, config, optimizeDeps);
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getOptimizeDeps","deepMergeOptimizeDeps","pluginName","defaultDepOptimizePlugin","name","enforce","config","env","command","Error","optimizeDeps","ssr"],"sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB;AAChC,SAASC,qBAAA,QAA6B;AAEtC,IAAAC,UAAM,8BAAa;AAUZ,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAMF,UAAA;IACNG,OAAA,EAAS;IACTC,OAAOA,MAAA,EAAQC,GAAA,EAAK;MAClB,IAAIA,GAAA,CAAIC,OAAA,KAAY,WAAWD,GAAA,CAAIC,OAAA,KAAY,SAC7C,MAAM,IAAIC,KAAA,KAAAP,UAAA,2BAAAK,GAAA,CAAAC,OAAA;MAAA,IACR;QAAAE;MAAc,IAAAV,eAAA,CAAAO,GAAA,CAAAC,OAA+B;MAAOF,MACtD,CAAAK,GAAA,KAAAL,MAAA,CAAAK,GAAA,QAAAV,qBAAA,CAAAK,MAAA,CAAAK,GAAA,
|
|
1
|
+
{"version":3,"names":["getOptimizeDeps","deepMergeOptimizeDeps","pluginName","defaultDepOptimizePlugin","name","enforce","config","env","command","Error","optimizeDeps","ssr"],"sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB;AAChC,SAASC,qBAAA,QAA6B;AAEtC,IAAAC,UAAM,8BAAa;AAUZ,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAMF,UAAA;IACNG,OAAA,EAAS;IACTC,OAAOA,MAAA,EAAQC,GAAA,EAAK;MAClB,IAAIA,GAAA,CAAIC,OAAA,KAAY,WAAWD,GAAA,CAAIC,OAAA,KAAY,SAC7C,MAAM,IAAIC,KAAA,KAAAP,UAAA,2BAAAK,GAAA,CAAAC,OAAA;MAAA,IACR;QAAAE;MAAc,IAAAV,eAAA,CAAAO,GAAA,CAAAC,OAA+B;MAAOF,MACtD,CAAAK,GAAA,KAAAL,MAAA,CAAAK,GAAA,QAAAV,qBAAA,CAAAK,MAAA,CAAAK,GAAA,EAAAL,MAAA,EAAAI,YAAA;IAGF;EAUA;AAEsD;AACxD,SAEJP,wBAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxrn",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.73-1769198278225",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -65,17 +65,17 @@
|
|
|
65
65
|
"@hono/node-server": "^1.19.6",
|
|
66
66
|
"@react-native/dev-middleware": "^0.83.0",
|
|
67
67
|
"@rollup/plugin-node-resolve": "^15.3.1",
|
|
68
|
-
"@vxrn/compiler": "1.2.
|
|
69
|
-
"@vxrn/debug": "1.2.
|
|
70
|
-
"@vxrn/query-string": "1.2.
|
|
71
|
-
"@vxrn/react-native-prebuilt": "1.2.
|
|
72
|
-
"@vxrn/resolve": "1.2.
|
|
73
|
-
"@vxrn/safe-area": "1.2.
|
|
74
|
-
"@vxrn/url-parse": "1.2.
|
|
75
|
-
"@vxrn/utils": "1.2.
|
|
76
|
-
"@vxrn/vendor": "1.2.
|
|
77
|
-
"@vxrn/vite-flow": "1.2.
|
|
78
|
-
"@vxrn/vite-plugin-metro": "1.2.
|
|
68
|
+
"@vxrn/compiler": "1.2.73-1769198278225",
|
|
69
|
+
"@vxrn/debug": "1.2.73-1769198278225",
|
|
70
|
+
"@vxrn/query-string": "1.2.73-1769198278225",
|
|
71
|
+
"@vxrn/react-native-prebuilt": "1.2.73-1769198278225",
|
|
72
|
+
"@vxrn/resolve": "1.2.73-1769198278225",
|
|
73
|
+
"@vxrn/safe-area": "1.2.73-1769198278225",
|
|
74
|
+
"@vxrn/url-parse": "1.2.73-1769198278225",
|
|
75
|
+
"@vxrn/utils": "1.2.73-1769198278225",
|
|
76
|
+
"@vxrn/vendor": "1.2.73-1769198278225",
|
|
77
|
+
"@vxrn/vite-flow": "1.2.73-1769198278225",
|
|
78
|
+
"@vxrn/vite-plugin-metro": "1.2.73-1769198278225",
|
|
79
79
|
"citty": "^0.1.6",
|
|
80
80
|
"dotenv": "^17.2.1",
|
|
81
81
|
"dotenv-expand": "^12.0.2",
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { deepMergeOptimizeDeps } from './mergeUserConfig'
|
|
3
|
+
|
|
4
|
+
describe('deepMergeOptimizeDeps', () => {
|
|
5
|
+
it('filters excluded deps from include list', () => {
|
|
6
|
+
const a = {
|
|
7
|
+
optimizeDeps: {
|
|
8
|
+
include: ['react', 'react-native-reanimated', 'lodash'],
|
|
9
|
+
exclude: [],
|
|
10
|
+
},
|
|
11
|
+
}
|
|
12
|
+
const b = {
|
|
13
|
+
optimizeDeps: {
|
|
14
|
+
exclude: ['react-native-reanimated'],
|
|
15
|
+
},
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
deepMergeOptimizeDeps(a, b)
|
|
19
|
+
|
|
20
|
+
expect(a.optimizeDeps.include).toContain('react')
|
|
21
|
+
expect(a.optimizeDeps.include).toContain('lodash')
|
|
22
|
+
expect(a.optimizeDeps.include).not.toContain('react-native-reanimated')
|
|
23
|
+
expect(a.optimizeDeps.exclude).toContain('react-native-reanimated')
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it('filters excluded deps from noExternal list', () => {
|
|
27
|
+
const a = {
|
|
28
|
+
optimizeDeps: {
|
|
29
|
+
include: ['react', 'react-native-reanimated'],
|
|
30
|
+
},
|
|
31
|
+
noExternal: ['react', 'react-native-reanimated'] as (string | RegExp)[],
|
|
32
|
+
}
|
|
33
|
+
const b = {
|
|
34
|
+
optimizeDeps: {
|
|
35
|
+
exclude: ['react-native-reanimated'],
|
|
36
|
+
},
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
deepMergeOptimizeDeps(a, b)
|
|
40
|
+
|
|
41
|
+
expect(a.noExternal).toContain('react')
|
|
42
|
+
expect(a.noExternal).not.toContain('react-native-reanimated')
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
it('filters excluded deps from needsInterop list', () => {
|
|
46
|
+
const a = {
|
|
47
|
+
optimizeDeps: {
|
|
48
|
+
include: [],
|
|
49
|
+
needsInterop: ['react', 'react-native-reanimated'],
|
|
50
|
+
},
|
|
51
|
+
}
|
|
52
|
+
const b = {
|
|
53
|
+
optimizeDeps: {
|
|
54
|
+
exclude: ['react-native-reanimated'],
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
deepMergeOptimizeDeps(a, b)
|
|
59
|
+
|
|
60
|
+
expect(a.optimizeDeps.needsInterop).toContain('react')
|
|
61
|
+
expect(a.optimizeDeps.needsInterop).not.toContain('react-native-reanimated')
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
it('merges excludes from all sources', () => {
|
|
65
|
+
const a = {
|
|
66
|
+
optimizeDeps: {
|
|
67
|
+
exclude: ['a'],
|
|
68
|
+
},
|
|
69
|
+
}
|
|
70
|
+
const b = {
|
|
71
|
+
optimizeDeps: {
|
|
72
|
+
exclude: ['b'],
|
|
73
|
+
},
|
|
74
|
+
}
|
|
75
|
+
const extra = {
|
|
76
|
+
include: [],
|
|
77
|
+
exclude: ['c'],
|
|
78
|
+
needsInterop: [],
|
|
79
|
+
esbuildOptions: { resolveExtensions: [] },
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
deepMergeOptimizeDeps(a, b, extra)
|
|
83
|
+
|
|
84
|
+
expect(a.optimizeDeps.exclude).toContain('a')
|
|
85
|
+
expect(a.optimizeDeps.exclude).toContain('b')
|
|
86
|
+
expect(a.optimizeDeps.exclude).toContain('c')
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
it('preserves noExternal: true when set', () => {
|
|
90
|
+
const a = {
|
|
91
|
+
optimizeDeps: {},
|
|
92
|
+
noExternal: true as const,
|
|
93
|
+
}
|
|
94
|
+
const b = {
|
|
95
|
+
optimizeDeps: {
|
|
96
|
+
exclude: ['react-native-reanimated'],
|
|
97
|
+
},
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
deepMergeOptimizeDeps(a, b)
|
|
101
|
+
|
|
102
|
+
expect(a.noExternal).toBe(true)
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
it('handles RegExp in noExternal', () => {
|
|
106
|
+
const regex = /some-pattern/
|
|
107
|
+
const a = {
|
|
108
|
+
optimizeDeps: {
|
|
109
|
+
include: ['react', 'react-native-reanimated'],
|
|
110
|
+
},
|
|
111
|
+
noExternal: [regex, 'react', 'react-native-reanimated'] as (string | RegExp)[],
|
|
112
|
+
}
|
|
113
|
+
const b = {
|
|
114
|
+
optimizeDeps: {
|
|
115
|
+
exclude: ['react-native-reanimated'],
|
|
116
|
+
},
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
deepMergeOptimizeDeps(a, b)
|
|
120
|
+
|
|
121
|
+
// regex should be preserved
|
|
122
|
+
expect(a.noExternal).toContain(regex)
|
|
123
|
+
expect(a.noExternal).toContain('react')
|
|
124
|
+
expect(a.noExternal).not.toContain('react-native-reanimated')
|
|
125
|
+
})
|
|
126
|
+
})
|
|
@@ -60,11 +60,21 @@ export function deepMergeOptimizeDeps(
|
|
|
60
60
|
a.optimizeDeps ||= {}
|
|
61
61
|
b.optimizeDeps ||= {}
|
|
62
62
|
|
|
63
|
+
// build exclude set first so we can filter it from other lists
|
|
64
|
+
const excludeSet = new Set(
|
|
65
|
+
uniq([
|
|
66
|
+
...(a.optimizeDeps.exclude || []),
|
|
67
|
+
...(b.optimizeDeps.exclude || []),
|
|
68
|
+
...(extraDepsOpt?.exclude || []),
|
|
69
|
+
])
|
|
70
|
+
)
|
|
71
|
+
|
|
63
72
|
if (!avoidMergeExternal) {
|
|
64
73
|
// If either config has noExternal: true, preserve it (means "bundle everything")
|
|
65
74
|
if (a.noExternal === true || b.noExternal === true) {
|
|
66
75
|
a.noExternal = true
|
|
67
76
|
} else {
|
|
77
|
+
// filter out excluded deps from noExternal
|
|
68
78
|
a.noExternal = uniq([
|
|
69
79
|
...coerceToArray((a.noExternal as string[]) || []),
|
|
70
80
|
...(a.optimizeDeps.include || []),
|
|
@@ -77,27 +87,25 @@ export function deepMergeOptimizeDeps(
|
|
|
77
87
|
'react-dom',
|
|
78
88
|
'react-dom/server',
|
|
79
89
|
'react-dom/client',
|
|
80
|
-
])
|
|
90
|
+
]).filter((dep) => typeof dep !== 'string' || !excludeSet.has(dep))
|
|
81
91
|
}
|
|
82
92
|
}
|
|
83
93
|
|
|
84
|
-
a.optimizeDeps.exclude =
|
|
85
|
-
...(a.optimizeDeps.exclude || []),
|
|
86
|
-
...(b.optimizeDeps.exclude || []),
|
|
87
|
-
...(extraDepsOpt?.exclude || []),
|
|
88
|
-
])
|
|
94
|
+
a.optimizeDeps.exclude = [...excludeSet]
|
|
89
95
|
|
|
96
|
+
// filter out excluded deps from include - esbuild fails if something is both
|
|
97
|
+
// an entry point (include) and external (exclude)
|
|
90
98
|
a.optimizeDeps.include = uniq([
|
|
91
99
|
...(a.optimizeDeps.include || []),
|
|
92
100
|
...(b.optimizeDeps.include || []),
|
|
93
101
|
...(extraDepsOpt?.include || []),
|
|
94
|
-
])
|
|
102
|
+
]).filter((dep) => !excludeSet.has(dep))
|
|
95
103
|
|
|
96
104
|
a.optimizeDeps.needsInterop = uniq([
|
|
97
105
|
...(a.optimizeDeps.needsInterop || []),
|
|
98
106
|
...(b.optimizeDeps.needsInterop || []),
|
|
99
107
|
...(extraDepsOpt?.needsInterop || []),
|
|
100
|
-
])
|
|
108
|
+
]).filter((dep) => !excludeSet.has(dep))
|
|
101
109
|
|
|
102
110
|
a.optimizeDeps.esbuildOptions = {
|
|
103
111
|
...a.optimizeDeps.esbuildOptions,
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { getScannedOptimizeDepsConfig } from './autoDepOptimizePlugin'
|
|
3
|
+
|
|
4
|
+
describe('getScannedOptimizeDepsConfig', () => {
|
|
5
|
+
it('filters excluded deps from scanned results', async () => {
|
|
6
|
+
// mock the scanning by passing a fake result
|
|
7
|
+
const mockResult = {
|
|
8
|
+
prebundleDeps: ['react', 'react-native-reanimated', 'lodash'],
|
|
9
|
+
hasReanimated: true,
|
|
10
|
+
hasNativewind: false,
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// we need to mock findDepsToOptimize, so let's test the filtering logic directly
|
|
14
|
+
const excludeArray = ['react-native-reanimated']
|
|
15
|
+
const excludeStrings = excludeArray.filter((e): e is string => typeof e === 'string')
|
|
16
|
+
const excludeSet = new Set(excludeStrings)
|
|
17
|
+
|
|
18
|
+
const filteredDeps = mockResult.prebundleDeps.filter((dep) => !excludeSet.has(dep))
|
|
19
|
+
|
|
20
|
+
expect(filteredDeps).toContain('react')
|
|
21
|
+
expect(filteredDeps).toContain('lodash')
|
|
22
|
+
expect(filteredDeps).not.toContain('react-native-reanimated')
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('handles RegExp exclude patterns (ignores them for dep name filtering)', async () => {
|
|
26
|
+
const mockResult = {
|
|
27
|
+
prebundleDeps: ['react', 'react-native-reanimated'],
|
|
28
|
+
hasReanimated: true,
|
|
29
|
+
hasNativewind: false,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// regexp patterns should be ignored for dep name filtering
|
|
33
|
+
const excludeArray: (string | RegExp)[] = [/some-pattern/, 'react-native-reanimated']
|
|
34
|
+
const excludeStrings = excludeArray.filter((e): e is string => typeof e === 'string')
|
|
35
|
+
const excludeSet = new Set(excludeStrings)
|
|
36
|
+
|
|
37
|
+
const filteredDeps = mockResult.prebundleDeps.filter((dep) => !excludeSet.has(dep))
|
|
38
|
+
|
|
39
|
+
expect(filteredDeps).toContain('react')
|
|
40
|
+
expect(filteredDeps).not.toContain('react-native-reanimated')
|
|
41
|
+
})
|
|
42
|
+
})
|
|
@@ -25,7 +25,7 @@ export function autoDepOptimizePlugin(props: FindDepsOptions): Plugin {
|
|
|
25
25
|
name,
|
|
26
26
|
enforce: 'pre',
|
|
27
27
|
|
|
28
|
-
async config(
|
|
28
|
+
async config(cfg, env) {
|
|
29
29
|
debug?.('Config hook called')
|
|
30
30
|
|
|
31
31
|
// TODO not use global here we should move deps into vxrn
|
|
@@ -34,16 +34,22 @@ export function autoDepOptimizePlugin(props: FindDepsOptions): Plugin {
|
|
|
34
34
|
|
|
35
35
|
const exclude = depsConfig
|
|
36
36
|
? Object.entries(depsConfig)
|
|
37
|
-
.filter(([
|
|
37
|
+
.filter(([_, value]) => value === false)
|
|
38
38
|
.map(([k]) => k)
|
|
39
39
|
: []
|
|
40
40
|
|
|
41
41
|
const userExcludes = Array.isArray(props.exclude) ? props.exclude : [props.exclude]
|
|
42
42
|
|
|
43
|
+
// also respect user's vite config optimizeDeps.exclude
|
|
44
|
+
const userViteExcludes = cfg.optimizeDeps?.exclude || []
|
|
45
|
+
const userSsrExcludes = cfg.ssr?.optimizeDeps?.exclude || []
|
|
46
|
+
|
|
43
47
|
const finalConfig = await getScannedOptimizeDepsConfig({
|
|
44
48
|
...props,
|
|
45
49
|
mode: env.mode,
|
|
46
|
-
exclude: [...exclude, ...userExcludes].filter(
|
|
50
|
+
exclude: [...exclude, ...userExcludes, ...userViteExcludes, ...userSsrExcludes].filter(
|
|
51
|
+
Boolean
|
|
52
|
+
),
|
|
47
53
|
})
|
|
48
54
|
|
|
49
55
|
debugDetails?.(
|
|
@@ -66,13 +72,21 @@ export async function getScannedOptimizeDepsConfig(props: FindDepsOptionsByMode)
|
|
|
66
72
|
|
|
67
73
|
props.onScannedDeps?.(result)
|
|
68
74
|
|
|
75
|
+
// filter out explicitly excluded deps from the scanned results
|
|
76
|
+
// createFilter works on file paths but user exclude may be dep names
|
|
77
|
+
const excludeArray = Array.isArray(props.exclude) ? props.exclude : [props.exclude]
|
|
78
|
+
const excludeStrings = excludeArray.filter((e): e is string => typeof e === 'string')
|
|
79
|
+
const excludeSet = new Set(excludeStrings)
|
|
80
|
+
|
|
81
|
+
const filteredDeps = result.prebundleDeps.filter((dep) => !excludeSet.has(dep))
|
|
82
|
+
|
|
69
83
|
return {
|
|
70
84
|
ssr: {
|
|
71
85
|
optimizeDeps: {
|
|
72
|
-
include:
|
|
86
|
+
include: filteredDeps,
|
|
73
87
|
exclude: EXCLUDE_LIST,
|
|
74
88
|
},
|
|
75
|
-
noExternal:
|
|
89
|
+
noExternal: filteredDeps,
|
|
76
90
|
},
|
|
77
91
|
}
|
|
78
92
|
}
|
|
@@ -35,7 +35,8 @@ export function defaultDepOptimizePlugin(): Plugin {
|
|
|
35
35
|
// so we just call it here to ensure `optimizeDeps` and `noExternal` configs are set as likely
|
|
36
36
|
// same as in CLI mode.
|
|
37
37
|
if (!config.ssr) config.ssr = {}
|
|
38
|
-
|
|
38
|
+
// pass user config so their excludes are respected
|
|
39
|
+
deepMergeOptimizeDeps(config.ssr, config, optimizeDeps)
|
|
39
40
|
},
|
|
40
41
|
} satisfies Plugin
|
|
41
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeUserConfig.d.ts","sourceRoot":"","sources":["../../src/config/mergeUserConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAI/E,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,EAAE;QACd,iBAAiB,EAAE,MAAM,EAAE,CAAA;KAC5B,CAAA;CACF,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,CAAA;CACtE,CAAA;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,UAAU,EACxB,cAAc,CAAC,EAAE,UAAU,GAAG,IAAI,cA8BnC;AAED,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,YAAY,CAAC,EAAE,gBAAgB,EAC/B,kBAAkB,UAAQ,
|
|
1
|
+
{"version":3,"file":"mergeUserConfig.d.ts","sourceRoot":"","sources":["../../src/config/mergeUserConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAI/E,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,EAAE;QACd,iBAAiB,EAAE,MAAM,EAAE,CAAA;KAC5B,CAAA;CACF,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,CAAA;CACtE,CAAA;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,UAAU,EACxB,cAAc,CAAC,EAAE,UAAU,GAAG,IAAI,cA8BnC;AAED,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,YAAY,CAAC,EAAE,gBAAgB,EAC/B,kBAAkB,UAAQ,QAyD3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeUserConfig.test.d.ts","sourceRoot":"","sources":["../../src/config/mergeUserConfig.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoDepOptimizePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAA;AAChD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,6BAA6B,CAAA;AAQpC,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"autoDepOptimizePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAA;AAChD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,6BAA6B,CAAA;AAQpC,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAuCpE;AAED,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,WAEpD,CAAA;AAED,KAAK,qBAAqB,GAAG,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/D,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,qBAAqB;;;;;;;;GAsB9E;AAID,wBAAsB,kBAAkB,CAAC,EACvC,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,GACR,EAAE,qBAAqB,2BA2EvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoDepOptimizePlugin.test.d.ts","sourceRoot":"","sources":["../../src/plugins/autoDepOptimizePlugin.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultDepOptimizePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AASlC;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"defaultDepOptimizePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AASlC;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CA0BjD"}
|