vxrn 0.1.46 → 0.1.48
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/cjs/cli.js +12 -2
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/cli.native.js +47 -35
- package/dist/cjs/cli.native.js.map +2 -2
- package/dist/cjs/constants.js +2 -70
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/constants.native.js +2 -105
- package/dist/cjs/constants.native.js.map +2 -2
- package/dist/cjs/exports/build.js +50 -62
- package/dist/cjs/exports/build.js.map +1 -1
- package/dist/cjs/exports/build.native.js +224 -205
- package/dist/cjs/exports/build.native.js.map +2 -2
- package/dist/cjs/exports/dev.js +39 -24
- package/dist/cjs/exports/dev.js.map +1 -1
- package/dist/cjs/exports/dev.native.js +48 -50
- package/dist/cjs/exports/dev.native.js.map +2 -2
- package/dist/cjs/utils/getHtml.js +9 -6
- package/dist/cjs/utils/getHtml.js.map +1 -1
- package/dist/cjs/utils/getHtml.native.js +9 -5
- package/dist/cjs/utils/getHtml.native.js.map +2 -2
- package/dist/cjs/utils/getOptimizeDeps.js +132 -0
- package/dist/cjs/utils/getOptimizeDeps.js.map +6 -0
- package/dist/cjs/utils/getOptimizeDeps.native.js +171 -0
- package/dist/cjs/utils/getOptimizeDeps.native.js.map +6 -0
- package/dist/cjs/utils/getVitePath.js +3 -1
- package/dist/cjs/utils/getVitePath.js.map +1 -1
- package/dist/cjs/utils/getVitePath.native.js +1 -1
- package/dist/cjs/utils/getVitePath.native.js.map +1 -1
- package/dist/cjs/utils/readVXRNConfig.js +5 -3
- package/dist/cjs/utils/readVXRNConfig.js.map +1 -1
- package/dist/cjs/utils/readVXRNConfig.native.js +5 -1
- package/dist/cjs/utils/readVXRNConfig.native.js.map +2 -2
- package/dist/esm/cli.js +12 -2
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/cli.mjs +12 -2
- package/dist/esm/cli.native.js +47 -35
- package/dist/esm/cli.native.js.map +2 -2
- package/dist/esm/constants.js +2 -70
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/constants.mjs +2 -13
- package/dist/esm/constants.native.js +2 -102
- package/dist/esm/constants.native.js.map +2 -2
- package/dist/esm/exports/build.js +47 -60
- package/dist/esm/exports/build.js.map +1 -1
- package/dist/esm/exports/build.mjs +64 -63
- package/dist/esm/exports/build.native.js +223 -204
- package/dist/esm/exports/build.native.js.map +2 -2
- package/dist/esm/exports/dev.js +37 -21
- package/dist/esm/exports/dev.js.map +1 -1
- package/dist/esm/exports/dev.mjs +39 -30
- package/dist/esm/exports/dev.native.js +46 -47
- package/dist/esm/exports/dev.native.js.map +2 -2
- package/dist/esm/utils/getHtml.js +9 -6
- package/dist/esm/utils/getHtml.js.map +1 -1
- package/dist/esm/utils/getHtml.mjs +11 -4
- package/dist/esm/utils/getHtml.native.js +9 -5
- package/dist/esm/utils/getHtml.native.js.map +2 -2
- package/dist/esm/utils/getOptimizeDeps.js +116 -0
- package/dist/esm/utils/getOptimizeDeps.js.map +6 -0
- package/dist/esm/utils/getOptimizeDeps.mjs +18 -0
- package/dist/esm/utils/getOptimizeDeps.native.js +150 -0
- package/dist/esm/utils/getOptimizeDeps.native.js.map +6 -0
- package/dist/esm/utils/getVitePath.js +3 -1
- package/dist/esm/utils/getVitePath.js.map +1 -1
- package/dist/esm/utils/getVitePath.mjs +1 -1
- package/dist/esm/utils/getVitePath.native.js +1 -1
- package/dist/esm/utils/getVitePath.native.js.map +1 -1
- package/dist/esm/utils/readVXRNConfig.js +5 -3
- package/dist/esm/utils/readVXRNConfig.js.map +1 -1
- package/dist/esm/utils/readVXRNConfig.mjs +5 -1
- package/dist/esm/utils/readVXRNConfig.native.js +5 -1
- package/dist/esm/utils/readVXRNConfig.native.js.map +2 -2
- package/package.json +10 -10
- package/src/cli.ts +12 -2
- package/src/constants.ts +0 -77
- package/src/exports/build.ts +96 -100
- package/src/exports/dev.ts +49 -39
- package/src/utils/getHtml.ts +21 -6
- package/src/utils/getOptimizeDeps.ts +122 -0
- package/src/utils/getVitePath.ts +3 -1
- package/src/utils/readVXRNConfig.ts +6 -4
- package/types/constants.d.ts +0 -10
- package/types/exports/build.d.ts +6 -1
- package/types/utils/getHtml.d.ts +2 -1
- package/types/utils/getOptimizeDeps.d.ts +13 -0
package/dist/esm/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const DEFAULT_PORT = 8081,
|
|
1
|
+
const DEFAULT_PORT = 8081, nativeExtensions = [
|
|
2
2
|
".native.tsx",
|
|
3
3
|
".native.jsx",
|
|
4
4
|
".native.js",
|
|
@@ -20,78 +20,10 @@ const DEFAULT_PORT = 8081, EMPTY_LOADER_STRING = "function loader() {/* \u2737\u
|
|
|
20
20
|
".js",
|
|
21
21
|
".css",
|
|
22
22
|
".json"
|
|
23
|
-
]
|
|
24
|
-
"react",
|
|
25
|
-
"react/jsx-runtime",
|
|
26
|
-
"react/jsx-dev-runtime",
|
|
27
|
-
"react-native-web-internals",
|
|
28
|
-
"react-dom",
|
|
29
|
-
"react-native-web",
|
|
30
|
-
"react-dom/server",
|
|
31
|
-
"react-dom/client",
|
|
32
|
-
"url-parse",
|
|
33
|
-
"@vxrn/safe-area",
|
|
34
|
-
"query-string",
|
|
35
|
-
"escape-string-regexp",
|
|
36
|
-
"use-latest-callback",
|
|
37
|
-
"react-is",
|
|
38
|
-
"fast-deep-equal",
|
|
39
|
-
"@react-navigation/native",
|
|
40
|
-
"tamagui/linear-gradient",
|
|
41
|
-
"react-native-svg",
|
|
42
|
-
"@supabase/auth-helpers-react",
|
|
43
|
-
"parse-numeric-range",
|
|
44
|
-
"use-sync-external-store",
|
|
45
|
-
"use-sync-external-store/shim",
|
|
46
|
-
"swr"
|
|
47
|
-
], depsToOptimize = [
|
|
48
|
-
...needsInterop,
|
|
49
|
-
"@react-native/normalize-color",
|
|
50
|
-
"@vxrn/router",
|
|
51
|
-
"expo-modules-core",
|
|
52
|
-
"expo-status-bar",
|
|
53
|
-
"react-native-web",
|
|
54
|
-
"react-native-web-lite",
|
|
55
|
-
"react-native",
|
|
56
|
-
"@tamagui/alert-dialog",
|
|
57
|
-
"@tamagui/avatar",
|
|
58
|
-
"@tamagui/core",
|
|
59
|
-
"@tamagui/dialog",
|
|
60
|
-
"@tamagui/group",
|
|
61
|
-
"@tamagui/helpers-icon",
|
|
62
|
-
"@tamagui/helpers",
|
|
63
|
-
"@tamagui/image",
|
|
64
|
-
"@tamagui/lucide-icons",
|
|
65
|
-
"@tamagui/popover",
|
|
66
|
-
"@tamagui/popper",
|
|
67
|
-
"@tamagui/scroll-view",
|
|
68
|
-
"@tamagui/select",
|
|
69
|
-
"@tamagui/sheet",
|
|
70
|
-
"@tamagui/switch",
|
|
71
|
-
"@tamagui/tabs",
|
|
72
|
-
"@tamagui/toast",
|
|
73
|
-
"@tamagui/toggle-group",
|
|
74
|
-
"@tamagui/tooltip",
|
|
75
|
-
"@tamagui/use-window-dimensions",
|
|
76
|
-
"@tamagui/web",
|
|
77
|
-
"tamagui",
|
|
78
|
-
"react-native-web",
|
|
79
|
-
"react-native-web-lite",
|
|
80
|
-
"reforest"
|
|
81
|
-
], optimizeDeps = {
|
|
82
|
-
include: depsToOptimize,
|
|
83
|
-
needsInterop,
|
|
84
|
-
exclude: ["util"],
|
|
85
|
-
esbuildOptions: {
|
|
86
|
-
resolveExtensions: webExtensions
|
|
87
|
-
}
|
|
88
|
-
};
|
|
23
|
+
];
|
|
89
24
|
export {
|
|
90
25
|
DEFAULT_PORT,
|
|
91
|
-
EMPTY_LOADER_STRING,
|
|
92
|
-
depsToOptimize,
|
|
93
26
|
nativeExtensions,
|
|
94
|
-
optimizeDeps,
|
|
95
27
|
webExtensions
|
|
96
28
|
};
|
|
97
29
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/constants.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "AAAO,MAAM,eAAe,MAEf,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/constants.mjs
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
const DEFAULT_PORT = 8081,
|
|
2
|
-
EMPTY_LOADER_STRING = "function loader() {/* \u2737\u2737\u2737 */};",
|
|
3
2
|
nativeExtensions = [".native.tsx", ".native.jsx", ".native.js", ".tsx", ".ts", ".js", ".css", ".json"],
|
|
4
|
-
webExtensions = [".web.tsx", ".tsx", ".web.ts", ".ts", ".web.jsx", ".jsx", ".web.js", ".web.mjs", ".mjs", ".js", ".css", ".json"]
|
|
5
|
-
|
|
6
|
-
depsToOptimize = [...needsInterop, "@react-native/normalize-color", "@vxrn/router", "expo-modules-core", "expo-status-bar", "react-native-web", "react-native-web-lite", "react-native", "@tamagui/alert-dialog", "@tamagui/avatar", "@tamagui/core", "@tamagui/dialog", "@tamagui/group", "@tamagui/helpers-icon", "@tamagui/helpers", "@tamagui/image", "@tamagui/lucide-icons", "@tamagui/popover", "@tamagui/popper", "@tamagui/scroll-view", "@tamagui/select", "@tamagui/sheet", "@tamagui/switch", "@tamagui/tabs", "@tamagui/toast", "@tamagui/toggle-group", "@tamagui/tooltip", "@tamagui/use-window-dimensions", "@tamagui/web", "tamagui", "react-native-web", "react-native-web-lite", "reforest"],
|
|
7
|
-
optimizeDeps = {
|
|
8
|
-
include: depsToOptimize,
|
|
9
|
-
needsInterop,
|
|
10
|
-
exclude: ["util"],
|
|
11
|
-
esbuildOptions: {
|
|
12
|
-
resolveExtensions: webExtensions
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
export { DEFAULT_PORT, EMPTY_LOADER_STRING, depsToOptimize, nativeExtensions, optimizeDeps, webExtensions };
|
|
3
|
+
webExtensions = [".web.tsx", ".tsx", ".web.ts", ".ts", ".web.jsx", ".jsx", ".web.js", ".web.mjs", ".mjs", ".js", ".css", ".json"];
|
|
4
|
+
export { DEFAULT_PORT, nativeExtensions, webExtensions };
|
|
@@ -1,35 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
(len == null || len > arr.length) && (len = arr.length);
|
|
3
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
4
|
-
arr2[i] = arr[i];
|
|
5
|
-
return arr2;
|
|
6
|
-
}
|
|
7
|
-
function _array_without_holes(arr) {
|
|
8
|
-
if (Array.isArray(arr))
|
|
9
|
-
return _array_like_to_array(arr);
|
|
10
|
-
}
|
|
11
|
-
function _iterable_to_array(iter) {
|
|
12
|
-
if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
|
|
13
|
-
return Array.from(iter);
|
|
14
|
-
}
|
|
15
|
-
function _non_iterable_spread() {
|
|
16
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
17
|
-
}
|
|
18
|
-
function _to_consumable_array(arr) {
|
|
19
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
20
|
-
}
|
|
21
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
22
|
-
if (o) {
|
|
23
|
-
if (typeof o == "string")
|
|
24
|
-
return _array_like_to_array(o, minLen);
|
|
25
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
26
|
-
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
|
|
27
|
-
return Array.from(n);
|
|
28
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
|
29
|
-
return _array_like_to_array(o, minLen);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
var DEFAULT_PORT = 8081, EMPTY_LOADER_STRING = "function loader() {/* \u2737\u2737\u2737 */};", nativeExtensions = [
|
|
1
|
+
var DEFAULT_PORT = 8081, nativeExtensions = [
|
|
33
2
|
".native.tsx",
|
|
34
3
|
".native.jsx",
|
|
35
4
|
".native.js",
|
|
@@ -51,79 +20,10 @@ var DEFAULT_PORT = 8081, EMPTY_LOADER_STRING = "function loader() {/* \u2737\u27
|
|
|
51
20
|
".js",
|
|
52
21
|
".css",
|
|
53
22
|
".json"
|
|
54
|
-
]
|
|
55
|
-
"react",
|
|
56
|
-
"react/jsx-runtime",
|
|
57
|
-
"react/jsx-dev-runtime",
|
|
58
|
-
"react-native-web-internals",
|
|
59
|
-
"react-dom",
|
|
60
|
-
"react-native-web",
|
|
61
|
-
"react-dom/server",
|
|
62
|
-
"react-dom/client",
|
|
63
|
-
"url-parse",
|
|
64
|
-
"@vxrn/safe-area",
|
|
65
|
-
"query-string",
|
|
66
|
-
"escape-string-regexp",
|
|
67
|
-
"use-latest-callback",
|
|
68
|
-
"react-is",
|
|
69
|
-
"fast-deep-equal",
|
|
70
|
-
"@react-navigation/native",
|
|
71
|
-
"tamagui/linear-gradient",
|
|
72
|
-
"react-native-svg",
|
|
73
|
-
"@supabase/auth-helpers-react",
|
|
74
|
-
"parse-numeric-range",
|
|
75
|
-
"use-sync-external-store",
|
|
76
|
-
"use-sync-external-store/shim",
|
|
77
|
-
"swr"
|
|
78
|
-
], depsToOptimize = _to_consumable_array(needsInterop).concat([
|
|
79
|
-
"@react-native/normalize-color",
|
|
80
|
-
"@vxrn/router",
|
|
81
|
-
"expo-modules-core",
|
|
82
|
-
"expo-status-bar",
|
|
83
|
-
"react-native-web",
|
|
84
|
-
"react-native-web-lite",
|
|
85
|
-
"react-native",
|
|
86
|
-
"@tamagui/alert-dialog",
|
|
87
|
-
"@tamagui/avatar",
|
|
88
|
-
"@tamagui/core",
|
|
89
|
-
"@tamagui/dialog",
|
|
90
|
-
"@tamagui/group",
|
|
91
|
-
"@tamagui/helpers-icon",
|
|
92
|
-
"@tamagui/helpers",
|
|
93
|
-
"@tamagui/image",
|
|
94
|
-
"@tamagui/lucide-icons",
|
|
95
|
-
"@tamagui/popover",
|
|
96
|
-
"@tamagui/popper",
|
|
97
|
-
"@tamagui/scroll-view",
|
|
98
|
-
"@tamagui/select",
|
|
99
|
-
"@tamagui/sheet",
|
|
100
|
-
"@tamagui/switch",
|
|
101
|
-
"@tamagui/tabs",
|
|
102
|
-
"@tamagui/toast",
|
|
103
|
-
"@tamagui/toggle-group",
|
|
104
|
-
"@tamagui/tooltip",
|
|
105
|
-
"@tamagui/use-window-dimensions",
|
|
106
|
-
"@tamagui/web",
|
|
107
|
-
"tamagui",
|
|
108
|
-
"react-native-web",
|
|
109
|
-
"react-native-web-lite",
|
|
110
|
-
"reforest"
|
|
111
|
-
]), optimizeDeps = {
|
|
112
|
-
include: depsToOptimize,
|
|
113
|
-
needsInterop,
|
|
114
|
-
exclude: [
|
|
115
|
-
"util"
|
|
116
|
-
],
|
|
117
|
-
esbuildOptions: {
|
|
118
|
-
resolveExtensions: webExtensions
|
|
119
|
-
}
|
|
120
|
-
};
|
|
23
|
+
];
|
|
121
24
|
export {
|
|
122
25
|
DEFAULT_PORT,
|
|
123
|
-
EMPTY_LOADER_STRING,
|
|
124
|
-
depsToOptimize,
|
|
125
26
|
nativeExtensions,
|
|
126
|
-
optimizeDeps,
|
|
127
27
|
webExtensions
|
|
128
28
|
};
|
|
129
29
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/vxrn/packages/vxrn/src/constants.ts"],
|
|
4
|
-
"mappings": "
|
|
5
|
-
"names": ["DEFAULT_PORT", "
|
|
4
|
+
"mappings": "AAAO,IAAMA,eAAe,MAEfC,mBAAmB;EAC9B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GAGWC,gBAAgB;EAC3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;",
|
|
5
|
+
"names": ["DEFAULT_PORT", "nativeExtensions", "webExtensions"]
|
|
6
6
|
}
|
|
@@ -2,22 +2,24 @@ import { build as esbuild } from "esbuild";
|
|
|
2
2
|
import { resolve as importMetaResolve } from "import-meta-resolve";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import { tmpdir } from "node:os";
|
|
5
|
-
import path
|
|
5
|
+
import path from "node:path";
|
|
6
6
|
import { mergeConfig, build as viteBuild } from "vite";
|
|
7
7
|
import FSExtra from "fs-extra";
|
|
8
8
|
import { getBaseViteConfig } from "../utils/getBaseViteConfig";
|
|
9
9
|
import { getHtml } from "../utils/getHtml";
|
|
10
|
+
import { getOptimizeDeps } from "../utils/getOptimizeDeps";
|
|
10
11
|
import { getOptionsFilled } from "../utils/getOptionsFilled";
|
|
11
|
-
|
|
12
|
+
Error.stackTraceLimit = 1 / 0;
|
|
12
13
|
const resolveFile = (path2) => {
|
|
13
14
|
try {
|
|
14
15
|
return importMetaResolve(path2, import.meta.url).replace("file://", "");
|
|
15
16
|
} catch {
|
|
16
17
|
return require.resolve(path2);
|
|
17
18
|
}
|
|
18
|
-
}, { ensureDir, existsSync, readFile, pathExists } = FSExtra, build = async (optionsIn) => {
|
|
19
|
+
}, { ensureDir, existsSync, readFile, pathExists } = FSExtra, build = async (optionsIn, buildOptions = {}) => {
|
|
19
20
|
const options = await getOptionsFilled(optionsIn);
|
|
20
21
|
process.env.NODE_ENV = "production";
|
|
22
|
+
const { optimizeDeps } = getOptimizeDeps("build");
|
|
21
23
|
let webBuildConfig = mergeConfig(
|
|
22
24
|
getBaseViteConfig({
|
|
23
25
|
mode: "production"
|
|
@@ -28,45 +30,23 @@ const resolveFile = (path2) => {
|
|
|
28
30
|
optimizeDeps
|
|
29
31
|
}
|
|
30
32
|
);
|
|
31
|
-
options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), console.info("build client"), await viteBuild(
|
|
33
|
+
options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), buildOptions.step !== "generate" && (console.info("build client"), await viteBuild(
|
|
32
34
|
mergeConfig(webBuildConfig, {
|
|
33
35
|
build: {
|
|
34
36
|
ssrManifest: !0,
|
|
35
37
|
outDir: "dist/client"
|
|
36
38
|
}
|
|
37
39
|
})
|
|
38
|
-
), console.info("build server");
|
|
40
|
+
)), console.info("build server");
|
|
39
41
|
const { output } = await viteBuild(
|
|
40
42
|
mergeConfig(webBuildConfig, {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (id[0] === ".") {
|
|
47
|
-
const absolutePath = resolve(dirname(importer), id), webPath = absolutePath.replace(/(.m?js)/, "") + ".web.js";
|
|
48
|
-
if (webPath === id)
|
|
49
|
-
return;
|
|
50
|
-
try {
|
|
51
|
-
const directoryPath = absolutePath + "/index.web.js";
|
|
52
|
-
if (await pathExists(directoryPath))
|
|
53
|
-
return console.info(`temp fix found ${directoryPath}`), directoryPath;
|
|
54
|
-
if (await pathExists(webPath))
|
|
55
|
-
return console.info(`temp fix found ${webPath}`), webPath;
|
|
56
|
-
} catch (err) {
|
|
57
|
-
console.warn("error probably fine", err);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
],
|
|
63
|
-
optimizeDeps: {
|
|
64
|
-
esbuildOptions: {
|
|
65
|
-
format: "cjs"
|
|
66
|
-
}
|
|
67
|
-
},
|
|
43
|
+
// optimizeDeps: {
|
|
44
|
+
// esbuildOptions: {
|
|
45
|
+
// format: 'cjs',
|
|
46
|
+
// },
|
|
47
|
+
// },
|
|
68
48
|
ssr: {
|
|
69
|
-
noExternal:
|
|
49
|
+
noExternal: optimizeDeps.include,
|
|
70
50
|
optimizeDeps
|
|
71
51
|
},
|
|
72
52
|
build: {
|
|
@@ -85,33 +65,37 @@ const resolveFile = (path2) => {
|
|
|
85
65
|
async function generateStaticPages(options, serverOutput) {
|
|
86
66
|
const toAbsolute = (p) => path.resolve(options.root, p), staticDir = toAbsolute("dist/static");
|
|
87
67
|
await ensureDir(staticDir);
|
|
88
|
-
const template = fs.readFileSync(toAbsolute("index.html"), "utf-8"), render = (await import(`${options.root}/dist/server/entry-server.js`)).render, assets = [], allRoutes =
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
return [];
|
|
97
|
-
const exported = await import(path.join(options.root, "dist/server", output.fileName)), paramsList = await exported.generateStaticParams?.() ?? [{}];
|
|
98
|
-
return await Promise.all(
|
|
99
|
-
paramsList.map(async (params) => {
|
|
100
|
-
const path2 = getUrl(params), loaderData = await exported.loader?.({ path: getUrl(params), params }) ?? {};
|
|
101
|
-
return { path: path2, loaderData };
|
|
102
|
-
})
|
|
103
|
-
);
|
|
104
|
-
function getUrl(_params = {}) {
|
|
105
|
-
return name === "index" ? "/" : `/${name.split("/").map((part) => {
|
|
106
|
-
if (part[0] === "[") {
|
|
107
|
-
const found = _params[part.slice(1, part.length - 1)];
|
|
108
|
-
return found || console.warn("not found", { _params, part }), found;
|
|
109
|
-
}
|
|
110
|
-
return part;
|
|
111
|
-
}).join("/")}`;
|
|
68
|
+
const template = fs.readFileSync(toAbsolute("index.html"), "utf-8"), render = (await import(`${options.root}/dist/server/entry-server.js`)).render, assets = [], allRoutes = [];
|
|
69
|
+
for (const output of serverOutput) {
|
|
70
|
+
let getUrl = function(_params = {}) {
|
|
71
|
+
if (name === "index")
|
|
72
|
+
return "/";
|
|
73
|
+
if (name.startsWith("[...")) {
|
|
74
|
+
const part = name.replace("[...", "").replace("]", "");
|
|
75
|
+
return `/${_params[part]}`;
|
|
112
76
|
}
|
|
113
|
-
|
|
114
|
-
|
|
77
|
+
return `/${name.split("/").map((part) => {
|
|
78
|
+
if (part[0] === "[") {
|
|
79
|
+
const found = _params[part.slice(1, part.length - 1)];
|
|
80
|
+
return found || console.warn("not found", { _params, part }), found;
|
|
81
|
+
}
|
|
82
|
+
return part;
|
|
83
|
+
}).join("/")}`;
|
|
84
|
+
};
|
|
85
|
+
if (output.type === "asset") {
|
|
86
|
+
assets.push(output);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const id = output.facadeModuleId || "", file = path.basename(id), name = file.replace(/\.[^/.]+$/, "");
|
|
90
|
+
if (!id || file[0] === "_" || file.includes("entry-server") || id.includes("+api"))
|
|
91
|
+
continue;
|
|
92
|
+
const exported = await import(path.join(options.root, "dist/server", output.fileName)), paramsList = await exported.generateStaticParams?.() ?? [{}];
|
|
93
|
+
for (const params of paramsList) {
|
|
94
|
+
const path2 = getUrl(params), loaderData = await exported.loader?.({ path: path2, params }) ?? {};
|
|
95
|
+
allRoutes.push({ path: path2, params, loaderData });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const cssStringRaw = assets.filter((x) => x.name?.endsWith(".css")).map((x) => x.source).join(`
|
|
115
99
|
|
|
116
100
|
`), tmpCssFile = path.join(tmpdir(), "tmp.css");
|
|
117
101
|
await FSExtra.writeFile(tmpCssFile, cssStringRaw, "utf-8"), await esbuild({
|
|
@@ -124,12 +108,15 @@ async function generateStaticPages(options, serverOutput) {
|
|
|
124
108
|
loader: { ".css": "css" }
|
|
125
109
|
});
|
|
126
110
|
const cssString = await FSExtra.readFile(tmpCssFile, "utf-8");
|
|
127
|
-
for (const { path: path2, loaderData } of allRoutes) {
|
|
111
|
+
for (const { path: path2, loaderData, params } of allRoutes) {
|
|
112
|
+
const loaderProps = { params };
|
|
113
|
+
globalThis.__vxrnLoaderProps__ = loaderProps, console.info("render", path2);
|
|
128
114
|
const { appHtml, headHtml } = await render({ path: path2 }), slashFileName = `${path2 === "/" ? "/index" : path2}.html`, clientHtmlPath = toAbsolute(`dist/client${slashFileName}`), clientHtml = existsSync(clientHtmlPath) ? await readFile(clientHtmlPath, "utf-8") : null, html = getHtml({
|
|
129
115
|
template: clientHtml || template,
|
|
130
116
|
appHtml,
|
|
131
117
|
headHtml,
|
|
132
118
|
loaderData,
|
|
119
|
+
loaderProps,
|
|
133
120
|
css: cssString
|
|
134
121
|
}), filePath = toAbsolute(`dist/static${slashFileName}`);
|
|
135
122
|
fs.writeFileSync(toAbsolute(filePath), html);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/exports/build.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,SAAS,eAAe;AACjC,SAAS,WAAW,yBAAyB;AAC7C,OAAO,QAAQ;AACf,SAAS,cAAc;AACvB,OAAO,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["path"]
|
|
6
6
|
}
|
|
@@ -2,13 +2,14 @@ import { build as esbuild } from "esbuild";
|
|
|
2
2
|
import { resolve as importMetaResolve } from "import-meta-resolve";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import { tmpdir } from "node:os";
|
|
5
|
-
import path
|
|
5
|
+
import path from "node:path";
|
|
6
6
|
import { mergeConfig, build as viteBuild } from "vite";
|
|
7
7
|
import FSExtra from "fs-extra";
|
|
8
8
|
import { getBaseViteConfig } from "../utils/getBaseViteConfig.mjs";
|
|
9
9
|
import { getHtml } from "../utils/getHtml.mjs";
|
|
10
|
+
import { getOptimizeDeps } from "../utils/getOptimizeDeps.mjs";
|
|
10
11
|
import { getOptionsFilled } from "../utils/getOptionsFilled.mjs";
|
|
11
|
-
|
|
12
|
+
Error.stackTraceLimit = 1 / 0;
|
|
12
13
|
const resolveFile = path2 => {
|
|
13
14
|
try {
|
|
14
15
|
return importMetaResolve(path2, import.meta.url).replace("file://", "");
|
|
@@ -22,9 +23,12 @@ const resolveFile = path2 => {
|
|
|
22
23
|
readFile,
|
|
23
24
|
pathExists
|
|
24
25
|
} = FSExtra,
|
|
25
|
-
build = async optionsIn => {
|
|
26
|
+
build = async (optionsIn, buildOptions = {}) => {
|
|
26
27
|
const options = await getOptionsFilled(optionsIn);
|
|
27
28
|
process.env.NODE_ENV = "production";
|
|
29
|
+
const {
|
|
30
|
+
optimizeDeps
|
|
31
|
+
} = getOptimizeDeps("build");
|
|
28
32
|
let webBuildConfig = mergeConfig(getBaseViteConfig({
|
|
29
33
|
mode: "production"
|
|
30
34
|
}), {
|
|
@@ -32,40 +36,22 @@ const resolveFile = path2 => {
|
|
|
32
36
|
clearScreen: !1,
|
|
33
37
|
optimizeDeps
|
|
34
38
|
});
|
|
35
|
-
options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), console.info("build client"), await viteBuild(mergeConfig(webBuildConfig, {
|
|
39
|
+
options.webConfig && (webBuildConfig = mergeConfig(webBuildConfig, options.webConfig)), buildOptions.step !== "generate" && (console.info("build client"), await viteBuild(mergeConfig(webBuildConfig, {
|
|
36
40
|
build: {
|
|
37
41
|
ssrManifest: !0,
|
|
38
42
|
outDir: "dist/client"
|
|
39
43
|
}
|
|
40
|
-
})), console.info("build server");
|
|
44
|
+
}))), console.info("build server");
|
|
41
45
|
const {
|
|
42
46
|
output
|
|
43
47
|
} = await viteBuild(mergeConfig(webBuildConfig, {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const absolutePath = resolve(dirname(importer), id),
|
|
50
|
-
webPath = absolutePath.replace(/(.m?js)/, "") + ".web.js";
|
|
51
|
-
if (webPath === id) return;
|
|
52
|
-
try {
|
|
53
|
-
const directoryPath = absolutePath + "/index.web.js";
|
|
54
|
-
if (await pathExists(directoryPath)) return console.info(`temp fix found ${directoryPath}`), directoryPath;
|
|
55
|
-
if (await pathExists(webPath)) return console.info(`temp fix found ${webPath}`), webPath;
|
|
56
|
-
} catch (err) {
|
|
57
|
-
console.warn("error probably fine", err);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}],
|
|
62
|
-
optimizeDeps: {
|
|
63
|
-
esbuildOptions: {
|
|
64
|
-
format: "cjs"
|
|
65
|
-
}
|
|
66
|
-
},
|
|
48
|
+
// optimizeDeps: {
|
|
49
|
+
// esbuildOptions: {
|
|
50
|
+
// format: 'cjs',
|
|
51
|
+
// },
|
|
52
|
+
// },
|
|
67
53
|
ssr: {
|
|
68
|
-
noExternal:
|
|
54
|
+
noExternal: optimizeDeps.include,
|
|
69
55
|
optimizeDeps
|
|
70
56
|
},
|
|
71
57
|
build: {
|
|
@@ -87,40 +73,49 @@ async function generateStaticPages(options, serverOutput) {
|
|
|
87
73
|
const template = fs.readFileSync(toAbsolute("index.html"), "utf-8"),
|
|
88
74
|
render = (await import(`${options.root}/dist/server/entry-server.js`)).render,
|
|
89
75
|
assets = [],
|
|
90
|
-
allRoutes =
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const exported = await import(path.join(options.root, "dist/server", output.fileName)),
|
|
98
|
-
paramsList = (await exported.generateStaticParams?.()) ?? [{}];
|
|
99
|
-
return await Promise.all(paramsList.map(async params => {
|
|
100
|
-
const path2 = getUrl(params),
|
|
101
|
-
loaderData = (await exported.loader?.({
|
|
102
|
-
path: getUrl(params),
|
|
103
|
-
params
|
|
104
|
-
})) ?? {};
|
|
105
|
-
return {
|
|
106
|
-
path: path2,
|
|
107
|
-
loaderData
|
|
108
|
-
};
|
|
109
|
-
}));
|
|
110
|
-
function getUrl(_params = {}) {
|
|
111
|
-
return name === "index" ? "/" : `/${name.split("/").map(part => {
|
|
112
|
-
if (part[0] === "[") {
|
|
113
|
-
const found = _params[part.slice(1, part.length - 1)];
|
|
114
|
-
return found || console.warn("not found", {
|
|
115
|
-
_params,
|
|
116
|
-
part
|
|
117
|
-
}), found;
|
|
118
|
-
}
|
|
119
|
-
return part;
|
|
120
|
-
}).join("/")}`;
|
|
76
|
+
allRoutes = [];
|
|
77
|
+
for (const output of serverOutput) {
|
|
78
|
+
let getUrl = function (_params = {}) {
|
|
79
|
+
if (name === "index") return "/";
|
|
80
|
+
if (name.startsWith("[...")) {
|
|
81
|
+
const part = name.replace("[...", "").replace("]", "");
|
|
82
|
+
return `/${_params[part]}`;
|
|
121
83
|
}
|
|
122
|
-
|
|
123
|
-
|
|
84
|
+
return `/${name.split("/").map(part => {
|
|
85
|
+
if (part[0] === "[") {
|
|
86
|
+
const found = _params[part.slice(1, part.length - 1)];
|
|
87
|
+
return found || console.warn("not found", {
|
|
88
|
+
_params,
|
|
89
|
+
part
|
|
90
|
+
}), found;
|
|
91
|
+
}
|
|
92
|
+
return part;
|
|
93
|
+
}).join("/")}`;
|
|
94
|
+
};
|
|
95
|
+
if (output.type === "asset") {
|
|
96
|
+
assets.push(output);
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const id = output.facadeModuleId || "",
|
|
100
|
+
file = path.basename(id),
|
|
101
|
+
name = file.replace(/\.[^/.]+$/, "");
|
|
102
|
+
if (!id || file[0] === "_" || file.includes("entry-server") || id.includes("+api")) continue;
|
|
103
|
+
const exported = await import(path.join(options.root, "dist/server", output.fileName)),
|
|
104
|
+
paramsList = (await exported.generateStaticParams?.()) ?? [{}];
|
|
105
|
+
for (const params of paramsList) {
|
|
106
|
+
const path2 = getUrl(params),
|
|
107
|
+
loaderData = (await exported.loader?.({
|
|
108
|
+
path: path2,
|
|
109
|
+
params
|
|
110
|
+
})) ?? {};
|
|
111
|
+
allRoutes.push({
|
|
112
|
+
path: path2,
|
|
113
|
+
params,
|
|
114
|
+
loaderData
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const cssStringRaw = assets.filter(x => x.name?.endsWith(".css")).map(x => x.source).join(`
|
|
124
119
|
|
|
125
120
|
`),
|
|
126
121
|
tmpCssFile = path.join(tmpdir(), "tmp.css");
|
|
@@ -138,8 +133,13 @@ async function generateStaticPages(options, serverOutput) {
|
|
|
138
133
|
const cssString = await FSExtra.readFile(tmpCssFile, "utf-8");
|
|
139
134
|
for (const {
|
|
140
135
|
path: path2,
|
|
141
|
-
loaderData
|
|
136
|
+
loaderData,
|
|
137
|
+
params
|
|
142
138
|
} of allRoutes) {
|
|
139
|
+
const loaderProps = {
|
|
140
|
+
params
|
|
141
|
+
};
|
|
142
|
+
globalThis.__vxrnLoaderProps__ = loaderProps, console.info("render", path2);
|
|
143
143
|
const {
|
|
144
144
|
appHtml,
|
|
145
145
|
headHtml
|
|
@@ -154,6 +154,7 @@ async function generateStaticPages(options, serverOutput) {
|
|
|
154
154
|
appHtml,
|
|
155
155
|
headHtml,
|
|
156
156
|
loaderData,
|
|
157
|
+
loaderProps,
|
|
157
158
|
css: cssString
|
|
158
159
|
}),
|
|
159
160
|
filePath = toAbsolute(`dist/static${slashFileName}`);
|