@base44/vite-plugin 1.0.32 → 1.0.34
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -14
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +12 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +31 -14
- package/src/utils.ts +13 -1
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;AAyB/C,eAAO,MAAM,uBAAuB,UAWnC,CAAC;AAeF,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,IAAI,GAAE;IACJ,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACvB,iBAwOP"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { loadEnv } from "vite";
|
|
2
|
+
import { loadEnv, version as viteVersion } from "vite";
|
|
3
3
|
import { errorOverlayPlugin } from "./error-overlay-plugin.js";
|
|
4
4
|
import { visualEditPlugin } from "./visual-edit-plugin.js";
|
|
5
5
|
import { filterPackagesInProject } from "./utils.js";
|
|
6
6
|
import { htmlInjectionsPlugin } from "./html-injections-plugin.js";
|
|
7
7
|
import { buildStatusPlugin } from "./build-status-plugin.js";
|
|
8
8
|
const isRunningInSandbox = !!process.env.MODAL_SANDBOX_ID;
|
|
9
|
+
// Vite 8 pre-bundles deps with Rolldown instead of esbuild and deprecates
|
|
10
|
+
// `optimizeDeps.esbuildOptions`. Both spellings mean the same thing here:
|
|
11
|
+
// treat .js files as JSX, since app code routinely puts JSX in .js.
|
|
12
|
+
const isVite8OrLater = Number(viteVersion.split(".")[0]) >= 8;
|
|
13
|
+
const jsxInJsFiles = isVite8OrLater
|
|
14
|
+
? { rolldownOptions: { moduleTypes: { ".js": "jsx" } } }
|
|
15
|
+
: { esbuildOptions: { loader: { ".js": "jsx" } } };
|
|
16
|
+
// Every entry Vite must pre-bundle before the browser loads the app. Deep
|
|
17
|
+
// entries are listed explicitly: to the optimizer `react/jsx-dev-runtime` and
|
|
18
|
+
// `react-dom/client` are separate entries, NOT covered by `react`/`react-dom`.
|
|
19
|
+
// Leaving one out means Vite discovers it mid-load, re-runs the optimizer and
|
|
20
|
+
// mints a new browserHash — so the same page ends up holding `react.js?v=A`
|
|
21
|
+
// and `react.js?v=B`, two React instances, and dies on its first hook with
|
|
22
|
+
// "Cannot read properties of null (reading 'useState')".
|
|
23
|
+
export const PREBUNDLED_SANDBOX_DEPS = [
|
|
24
|
+
"react",
|
|
25
|
+
"react/jsx-runtime",
|
|
26
|
+
"react/jsx-dev-runtime",
|
|
27
|
+
"react-dom",
|
|
28
|
+
"react-dom/client",
|
|
29
|
+
"react-router-dom",
|
|
30
|
+
"framer-motion",
|
|
31
|
+
"lodash",
|
|
32
|
+
"moment",
|
|
33
|
+
"react-quill",
|
|
34
|
+
];
|
|
9
35
|
const ENV_UNSET_GUIDANCE = [
|
|
10
36
|
"[base44] No Base44 backend configured — VITE_BASE44_APP_BASE_URL is not set, so /api requests have nowhere to go.",
|
|
11
37
|
"[base44] Run the app through the Base44 CLI instead:",
|
|
@@ -119,21 +145,10 @@ export default function vitePlugin(opts = {}) {
|
|
|
119
145
|
optimizeDeps: {
|
|
120
146
|
...(isRunningInSandbox
|
|
121
147
|
? {
|
|
122
|
-
include: filterPackagesInProject(
|
|
123
|
-
"react",
|
|
124
|
-
"react-dom",
|
|
125
|
-
"framer-motion",
|
|
126
|
-
"lodash",
|
|
127
|
-
"moment",
|
|
128
|
-
"react-quill",
|
|
129
|
-
], root),
|
|
148
|
+
include: filterPackagesInProject(PREBUNDLED_SANDBOX_DEPS, root),
|
|
130
149
|
}
|
|
131
150
|
: {}),
|
|
132
|
-
|
|
133
|
-
loader: {
|
|
134
|
-
".js": "jsx",
|
|
135
|
-
},
|
|
136
|
-
},
|
|
151
|
+
...jsxInJsFiles,
|
|
137
152
|
},
|
|
138
153
|
};
|
|
139
154
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAeA,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,MAAM,GACX,MAAM,EAAE,CAmBV"}
|
package/dist/utils.js
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { readFileSync, existsSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
|
+
/**
|
|
4
|
+
* The package that owns an optimizeDeps entry. Deep entries like
|
|
5
|
+
* `react-dom/client` are separate entries to Vite's optimizer but are declared
|
|
6
|
+
* in package.json only under their owning package.
|
|
7
|
+
*/
|
|
8
|
+
function owningPackage(entry) {
|
|
9
|
+
const segments = entry.split("/");
|
|
10
|
+
return entry.startsWith("@")
|
|
11
|
+
? segments.slice(0, 2).join("/")
|
|
12
|
+
: segments[0] ?? entry;
|
|
13
|
+
}
|
|
3
14
|
export function filterPackagesInProject(packages, root) {
|
|
4
15
|
try {
|
|
5
16
|
const packageJsonPath = join(root, "package.json");
|
|
@@ -12,7 +23,7 @@ export function filterPackagesInProject(packages, root) {
|
|
|
12
23
|
...packageJson.devDependencies,
|
|
13
24
|
...packageJson.peerDependencies,
|
|
14
25
|
};
|
|
15
|
-
return packages.filter((pkg) => pkg in allDeps);
|
|
26
|
+
return packages.filter((pkg) => owningPackage(pkg) in allDeps);
|
|
16
27
|
}
|
|
17
28
|
catch (error) {
|
|
18
29
|
console.warn("Failed to read project package.json:", error);
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG;YACd,GAAG,WAAW,CAAC,YAAY;YAC3B,GAAG,WAAW,CAAC,eAAe;YAC9B,GAAG,WAAW,CAAC,gBAAgB;SAChC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG;YACd,GAAG,WAAW,CAAC,YAAY;YAC3B,GAAG,WAAW,CAAC,eAAe;YAC9B,GAAG,WAAW,CAAC,gBAAgB;SAChC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import type { Plugin, UserConfig } from "vite";
|
|
3
|
-
import { loadEnv } from "vite";
|
|
3
|
+
import { loadEnv, version as viteVersion } from "vite";
|
|
4
4
|
import { errorOverlayPlugin } from "./error-overlay-plugin.js";
|
|
5
5
|
import { visualEditPlugin } from "./visual-edit-plugin.js";
|
|
6
6
|
import { filterPackagesInProject } from "./utils.js";
|
|
@@ -9,6 +9,34 @@ import { buildStatusPlugin } from "./build-status-plugin.js";
|
|
|
9
9
|
|
|
10
10
|
const isRunningInSandbox = !!process.env.MODAL_SANDBOX_ID;
|
|
11
11
|
|
|
12
|
+
// Vite 8 pre-bundles deps with Rolldown instead of esbuild and deprecates
|
|
13
|
+
// `optimizeDeps.esbuildOptions`. Both spellings mean the same thing here:
|
|
14
|
+
// treat .js files as JSX, since app code routinely puts JSX in .js.
|
|
15
|
+
const isVite8OrLater = Number(viteVersion.split(".")[0]) >= 8;
|
|
16
|
+
const jsxInJsFiles = isVite8OrLater
|
|
17
|
+
? { rolldownOptions: { moduleTypes: { ".js": "jsx" } } }
|
|
18
|
+
: { esbuildOptions: { loader: { ".js": "jsx" } } };
|
|
19
|
+
|
|
20
|
+
// Every entry Vite must pre-bundle before the browser loads the app. Deep
|
|
21
|
+
// entries are listed explicitly: to the optimizer `react/jsx-dev-runtime` and
|
|
22
|
+
// `react-dom/client` are separate entries, NOT covered by `react`/`react-dom`.
|
|
23
|
+
// Leaving one out means Vite discovers it mid-load, re-runs the optimizer and
|
|
24
|
+
// mints a new browserHash — so the same page ends up holding `react.js?v=A`
|
|
25
|
+
// and `react.js?v=B`, two React instances, and dies on its first hook with
|
|
26
|
+
// "Cannot read properties of null (reading 'useState')".
|
|
27
|
+
export const PREBUNDLED_SANDBOX_DEPS = [
|
|
28
|
+
"react",
|
|
29
|
+
"react/jsx-runtime",
|
|
30
|
+
"react/jsx-dev-runtime",
|
|
31
|
+
"react-dom",
|
|
32
|
+
"react-dom/client",
|
|
33
|
+
"react-router-dom",
|
|
34
|
+
"framer-motion",
|
|
35
|
+
"lodash",
|
|
36
|
+
"moment",
|
|
37
|
+
"react-quill",
|
|
38
|
+
];
|
|
39
|
+
|
|
12
40
|
const ENV_UNSET_GUIDANCE = [
|
|
13
41
|
"[base44] No Base44 backend configured — VITE_BASE44_APP_BASE_URL is not set, so /api requests have nowhere to go.",
|
|
14
42
|
"[base44] Run the app through the Base44 CLI instead:",
|
|
@@ -152,23 +180,12 @@ export default function vitePlugin(
|
|
|
152
180
|
...(isRunningInSandbox
|
|
153
181
|
? {
|
|
154
182
|
include: filterPackagesInProject(
|
|
155
|
-
|
|
156
|
-
"react",
|
|
157
|
-
"react-dom",
|
|
158
|
-
"framer-motion",
|
|
159
|
-
"lodash",
|
|
160
|
-
"moment",
|
|
161
|
-
"react-quill",
|
|
162
|
-
],
|
|
183
|
+
PREBUNDLED_SANDBOX_DEPS,
|
|
163
184
|
root
|
|
164
185
|
),
|
|
165
186
|
}
|
|
166
187
|
: {}),
|
|
167
|
-
|
|
168
|
-
loader: {
|
|
169
|
-
".js": "jsx",
|
|
170
|
-
},
|
|
171
|
-
},
|
|
188
|
+
...jsxInJsFiles,
|
|
172
189
|
},
|
|
173
190
|
};
|
|
174
191
|
},
|
package/src/utils.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { readFileSync, existsSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* The package that owns an optimizeDeps entry. Deep entries like
|
|
6
|
+
* `react-dom/client` are separate entries to Vite's optimizer but are declared
|
|
7
|
+
* in package.json only under their owning package.
|
|
8
|
+
*/
|
|
9
|
+
function owningPackage(entry: string): string {
|
|
10
|
+
const segments = entry.split("/");
|
|
11
|
+
return entry.startsWith("@")
|
|
12
|
+
? segments.slice(0, 2).join("/")
|
|
13
|
+
: segments[0] ?? entry;
|
|
14
|
+
}
|
|
15
|
+
|
|
4
16
|
export function filterPackagesInProject(
|
|
5
17
|
packages: string[],
|
|
6
18
|
root: string
|
|
@@ -18,7 +30,7 @@ export function filterPackagesInProject(
|
|
|
18
30
|
...packageJson.peerDependencies,
|
|
19
31
|
};
|
|
20
32
|
|
|
21
|
-
return packages.filter((pkg) => pkg in allDeps);
|
|
33
|
+
return packages.filter((pkg) => owningPackage(pkg) in allDeps);
|
|
22
34
|
} catch (error) {
|
|
23
35
|
console.warn("Failed to read project package.json:", error);
|
|
24
36
|
return [];
|