vike 0.4.223-commit-62ca594 → 0.4.223-commit-f1089b4
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/node/plugin/plugins/build/pluginAssetsManifest/fixServerAssets.js +54 -3
- package/dist/cjs/node/plugin/plugins/build/pluginAutoFullBuild.js +6 -10
- package/dist/cjs/node/plugin/plugins/build/pluginBuildApp.js +1 -1
- package/dist/cjs/node/plugin/plugins/build/pluginBuildConfig.js +6 -2
- package/dist/cjs/node/plugin/plugins/build.js +0 -2
- package/dist/cjs/node/plugin/plugins/commonConfig.js +1 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +4 -2
- package/dist/cjs/node/plugin/shared/getOutDirs.js +5 -4
- package/dist/cjs/node/plugin/shared/viteIsSSR.js +9 -2
- package/dist/cjs/node/prerender/runPrerender.js +1 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/requireResolve.js +7 -0
- package/dist/esm/node/plugin/plugins/build/pluginAssetsManifest/fixServerAssets.d.ts +14 -9
- package/dist/esm/node/plugin/plugins/build/pluginAssetsManifest/fixServerAssets.js +58 -5
- package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.js +6 -10
- package/dist/esm/node/plugin/plugins/build/pluginBuildApp.js +1 -1
- package/dist/esm/node/plugin/plugins/build/pluginBuildConfig.js +6 -2
- package/dist/esm/node/plugin/plugins/build.js +0 -2
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/commonConfig.js +1 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +4 -2
- package/dist/esm/node/plugin/shared/getOutDirs.d.ts +2 -2
- package/dist/esm/node/plugin/shared/getOutDirs.js +5 -4
- package/dist/esm/node/plugin/shared/viteIsSSR.d.ts +4 -2
- package/dist/esm/node/plugin/shared/viteIsSSR.js +9 -2
- package/dist/esm/node/prerender/runPrerender.js +1 -0
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/requireResolve.js +7 -0
- package/package.json +1 -1
- package/dist/cjs/node/plugin/plugins/build/pluginAssetsManifest.js +0 -115
- package/dist/esm/node/plugin/plugins/build/pluginAssetsManifest.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/build/pluginAssetsManifest.js +0 -110
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.handleAssetsManifest = handleAssetsManifest;
|
|
7
|
+
exports.fixServerAssets_getBuildConfig = fixServerAssets_getBuildConfig;
|
|
7
8
|
exports.fixServerAssets_isEnabled = fixServerAssets_isEnabled;
|
|
8
9
|
exports.fixServerAssets_assertUsageCssCodeSplit = fixServerAssets_assertUsageCssCodeSplit;
|
|
9
10
|
exports.fixServerAssets_assertUsageCssTarget = fixServerAssets_assertUsageCssTarget;
|
|
@@ -20,6 +21,11 @@ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
|
20
21
|
const getVikeConfig_js_1 = require("../../importUserCode/v1-design/getVikeConfig.js");
|
|
21
22
|
const getOutDirs_js_1 = require("../../../shared/getOutDirs.js");
|
|
22
23
|
const viteIsSSR_js_1 = require("../../../shared/viteIsSSR.js");
|
|
24
|
+
const commonConfig_js_1 = require("../../commonConfig.js");
|
|
25
|
+
const pluginBuildEntry_js_1 = require("../pluginBuildEntry.js");
|
|
26
|
+
(0, utils_js_1.assertIsSingleModuleInstance)('build/handleAssetsManifest.ts');
|
|
27
|
+
let assetsJsonFilePath;
|
|
28
|
+
// TODO/now move isV1Design() inside fixServerAssets_isEnabled()
|
|
23
29
|
/**
|
|
24
30
|
* true => use workaround config.build.ssrEmitAssets
|
|
25
31
|
* false => use workaround extractAssets plugin
|
|
@@ -219,13 +225,16 @@ function getHash(src) {
|
|
|
219
225
|
}
|
|
220
226
|
// https://github.com/vikejs/vike/issues/1993
|
|
221
227
|
function fixServerAssets_assertUsageCssCodeSplit(config) {
|
|
228
|
+
const isServerAssetsFixEnabled = fixServerAssets_isEnabled() && (0, getVikeConfig_js_1.isV1Design)(config);
|
|
229
|
+
if (!isServerAssetsFixEnabled)
|
|
230
|
+
return;
|
|
222
231
|
(0, utils_js_1.assertWarning)(config.build.cssCodeSplit, `${picocolors_1.default.cyan('build.cssCodeSplit')} shouldn't be set to ${picocolors_1.default.cyan('false')} (https://github.com/vikejs/vike/issues/1993)`, { onlyOnce: true });
|
|
223
232
|
}
|
|
224
233
|
const targets = [];
|
|
225
|
-
|
|
234
|
+
function fixServerAssets_assertUsageCssTarget(config) {
|
|
226
235
|
if (!fixServerAssets_isEnabled())
|
|
227
236
|
return;
|
|
228
|
-
if (!(
|
|
237
|
+
if (!(0, getVikeConfig_js_1.isV1Design)(config))
|
|
229
238
|
return;
|
|
230
239
|
const isServerSide = (0, viteIsSSR_js_1.viteIsSSR)(config);
|
|
231
240
|
(0, utils_js_1.assert)(typeof isServerSide === 'boolean');
|
|
@@ -286,3 +295,45 @@ async function writeManifestFile(manifest, manifestFilePath) {
|
|
|
286
295
|
const manifestFileContent = JSON.stringify(manifest, null, 2);
|
|
287
296
|
await promises_1.default.writeFile(manifestFilePath, manifestFileContent, 'utf-8');
|
|
288
297
|
}
|
|
298
|
+
function fixServerAssets_getBuildConfig(config) {
|
|
299
|
+
const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
|
|
300
|
+
const isServerAssetsFixEnabled = fixServerAssets_isEnabled() && (0, getVikeConfig_js_1.isV1Design)(config);
|
|
301
|
+
return {
|
|
302
|
+
// https://github.com/vikejs/vike/issues/1339
|
|
303
|
+
ssrEmitAssets: isServerAssetsFixEnabled ? true : undefined,
|
|
304
|
+
// Required if `ssrEmitAssets: true`, see https://github.com/vitejs/vite/pull/11430#issuecomment-1454800934
|
|
305
|
+
cssMinify: isServerAssetsFixEnabled ? 'esbuild' : undefined,
|
|
306
|
+
manifest: pluginBuildConfig_js_1.manifestTempFile,
|
|
307
|
+
copyPublicDir: vike.config.viteEnvironmentAPI
|
|
308
|
+
? // Already set by vike:build:pluginBuildApp
|
|
309
|
+
undefined
|
|
310
|
+
: !(0, viteIsSSR_js_1.viteIsSSR)(config)
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
async function handleAssetsManifest(config, viteEnv, options, bundle) {
|
|
314
|
+
if ((0, viteIsSSR_js_1.viteIsSSR)(config, viteEnv)) {
|
|
315
|
+
(0, utils_js_1.assert)(!assetsJsonFilePath);
|
|
316
|
+
const outDirs = (0, getOutDirs_js_1.getOutDirs)(config, viteEnv);
|
|
317
|
+
assetsJsonFilePath = path_1.default.posix.join(outDirs.outDirRoot, 'assets.json');
|
|
318
|
+
await writeAssetsManifestFile(outDirs, assetsJsonFilePath, config);
|
|
319
|
+
}
|
|
320
|
+
if ((0, viteIsSSR_js_1.viteIsServerBuildEnvAny)(config, viteEnv)) {
|
|
321
|
+
(0, utils_js_1.assert)(assetsJsonFilePath);
|
|
322
|
+
// Replace __VITE_ASSETS_MANIFEST__ in all server-side bundles
|
|
323
|
+
await (0, pluginBuildEntry_js_1.set_macro_ASSETS_MANIFEST)(options, bundle, assetsJsonFilePath);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
async function writeAssetsManifestFile(outDirs, assetsJsonFilePath, config) {
|
|
327
|
+
const isServerAssetsFixEnabled = fixServerAssets_isEnabled() && (0, getVikeConfig_js_1.isV1Design)(config);
|
|
328
|
+
const clientManifestFilePath = path_1.default.posix.join(outDirs.outDirClient, pluginBuildConfig_js_1.manifestTempFile);
|
|
329
|
+
const serverManifestFilePath = path_1.default.posix.join(outDirs.outDirServer, pluginBuildConfig_js_1.manifestTempFile);
|
|
330
|
+
if (!isServerAssetsFixEnabled) {
|
|
331
|
+
await promises_1.default.copyFile(clientManifestFilePath, assetsJsonFilePath);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
const { clientManifestMod } = await fixServerAssets(config);
|
|
335
|
+
await writeManifestFile(clientManifestMod, assetsJsonFilePath);
|
|
336
|
+
}
|
|
337
|
+
await promises_1.default.rm(clientManifestFilePath);
|
|
338
|
+
await promises_1.default.rm(serverManifestFilePath);
|
|
339
|
+
}
|
|
@@ -15,6 +15,7 @@ const logErrorHint_js_1 = require("../../../runtime/renderPage/logErrorHint.js")
|
|
|
15
15
|
const pluginBuildConfig_js_1 = require("./pluginBuildConfig.js");
|
|
16
16
|
const getVikeConfig_js_1 = require("../importUserCode/v1-design/getVikeConfig.js");
|
|
17
17
|
const context_js_2 = require("../../../api/context.js");
|
|
18
|
+
const fixServerAssets_js_1 = require("./pluginAssetsManifest/fixServerAssets.js");
|
|
18
19
|
let forceExit = false;
|
|
19
20
|
function pluginAutoFullBuild() {
|
|
20
21
|
let config;
|
|
@@ -30,19 +31,13 @@ function pluginAutoFullBuild() {
|
|
|
30
31
|
abortViteBuildSsr(vikeConfig);
|
|
31
32
|
},
|
|
32
33
|
writeBundle: {
|
|
33
|
-
/* We can't use this because it breaks Vite's logging. TODO: try again with latest Vite version.
|
|
34
|
+
/* We can't use this because it breaks Vite's logging. TODO/eventually: try again with latest Vite version.
|
|
34
35
|
sequential: true,
|
|
35
36
|
order: 'pre',
|
|
36
37
|
*/
|
|
37
|
-
async handler(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
catch (err) {
|
|
42
|
-
// Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], for example see https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
43
|
-
console.error(err);
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
38
|
+
async handler(options, bundle) {
|
|
39
|
+
await (0, fixServerAssets_js_1.handleAssetsManifest)(config, this.environment, options, bundle);
|
|
40
|
+
await triggerFullBuild(config, vikeConfig, bundle);
|
|
46
41
|
}
|
|
47
42
|
}
|
|
48
43
|
},
|
|
@@ -79,6 +74,7 @@ async function triggerFullBuild(config, vikeConfig, bundle) {
|
|
|
79
74
|
await (0, vite_1.build)(setSSR(configInline));
|
|
80
75
|
}
|
|
81
76
|
catch (err) {
|
|
77
|
+
// Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
82
78
|
console.error(err);
|
|
83
79
|
(0, logErrorHint_js_1.logErrorHint)(err);
|
|
84
80
|
process.exit(1);
|
|
@@ -11,7 +11,7 @@ const commonConfig_js_1 = require("../commonConfig.js");
|
|
|
11
11
|
function pluginBuildApp() {
|
|
12
12
|
let config;
|
|
13
13
|
// `builder.buildApp()` can be overriden by another plugin e.g vike-vercel https://github.com/vikejs/vike/pull/2184#issuecomment-2659425195
|
|
14
|
-
// In that case, we
|
|
14
|
+
// In that case, we shouldn't `forceExit`.
|
|
15
15
|
let forceExit = false;
|
|
16
16
|
return [
|
|
17
17
|
{
|
|
@@ -15,6 +15,7 @@ const getFilePath_js_1 = require("../../shared/getFilePath.js");
|
|
|
15
15
|
const getConfigValueBuildTime_js_1 = require("../../../../shared/page-configs/getConfigValueBuildTime.js");
|
|
16
16
|
const viteIsSSR_js_1 = require("../../shared/viteIsSSR.js");
|
|
17
17
|
const getOutDirs_js_1 = require("../../shared/getOutDirs.js");
|
|
18
|
+
const fixServerAssets_js_1 = require("./pluginAssetsManifest/fixServerAssets.js");
|
|
18
19
|
// @ts-ignore `file://${__filename}` is shimmed at dist/cjs by dist-cjs-fixup.js.
|
|
19
20
|
const importMetaUrl = `file://${__filename}`;
|
|
20
21
|
const require_ = (0, module_1.createRequire)(importMetaUrl);
|
|
@@ -37,6 +38,7 @@ function pluginBuildConfig() {
|
|
|
37
38
|
(0, utils_js_1.assert)(Object.keys(entries).length > 0);
|
|
38
39
|
config.build.rollupOptions.input = (0, utils_js_1.injectRollupInputs)(entries, config);
|
|
39
40
|
addLogHook();
|
|
41
|
+
(0, fixServerAssets_js_1.fixServerAssets_assertUsageCssCodeSplit)(config);
|
|
40
42
|
}
|
|
41
43
|
},
|
|
42
44
|
config: {
|
|
@@ -45,7 +47,8 @@ function pluginBuildConfig() {
|
|
|
45
47
|
(0, utils_js_1.onSetupBuild)();
|
|
46
48
|
return {
|
|
47
49
|
build: {
|
|
48
|
-
outDir: (0, getOutDirs_js_1.resolveOutDir)(config)
|
|
50
|
+
outDir: (0, getOutDirs_js_1.resolveOutDir)(config),
|
|
51
|
+
...(0, fixServerAssets_js_1.fixServerAssets_getBuildConfig)(config)
|
|
49
52
|
}
|
|
50
53
|
};
|
|
51
54
|
}
|
|
@@ -53,8 +56,9 @@ function pluginBuildConfig() {
|
|
|
53
56
|
buildStart() {
|
|
54
57
|
(0, utils_js_1.onSetupBuild)();
|
|
55
58
|
},
|
|
56
|
-
|
|
59
|
+
closeBundle() {
|
|
57
60
|
(0, utils_js_1.onSetupBuild)();
|
|
61
|
+
(0, fixServerAssets_js_1.fixServerAssets_assertUsageCssTarget)(config);
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
];
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.build = build;
|
|
4
|
-
const pluginAssetsManifest_js_1 = require("./build/pluginAssetsManifest.js");
|
|
5
4
|
const pluginBuildApp_js_1 = require("./build/pluginBuildApp.js");
|
|
6
5
|
const pluginDistPackageJsonFile_js_1 = require("./build/pluginDistPackageJsonFile.js");
|
|
7
6
|
const pluginSuppressRollupWarning_js_1 = require("./build/pluginSuppressRollupWarning.js");
|
|
@@ -11,7 +10,6 @@ const pluginBuildEntry_js_1 = require("./build/pluginBuildEntry.js");
|
|
|
11
10
|
const pluginBuildConfig_js_1 = require("./build/pluginBuildConfig.js");
|
|
12
11
|
function build() {
|
|
13
12
|
return [
|
|
14
|
-
...(0, pluginAssetsManifest_js_1.pluginAssetsManifest)(),
|
|
15
13
|
...(0, pluginBuildConfig_js_1.pluginBuildConfig)(),
|
|
16
14
|
...(0, pluginBuildApp_js_1.pluginBuildApp)(),
|
|
17
15
|
...(0, pluginAutoFullBuild_js_1.pluginAutoFullBuild)(),
|
|
@@ -91,8 +91,10 @@ async function getVikeConfigEntry(userRootDir, isDev, vikeVitePluginOptions, doN
|
|
|
91
91
|
}
|
|
92
92
|
return await vikeConfigPromise;
|
|
93
93
|
}
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
// TODO/now update all isV1Design() usage
|
|
95
|
+
function isV1Design(config) {
|
|
96
|
+
const vikeConfig = config._vikeConfigObject;
|
|
97
|
+
(0, utils_js_1.assert)(vikeConfig);
|
|
96
98
|
const { pageConfigs } = vikeConfig;
|
|
97
99
|
const isV1Design = pageConfigs.length > 0;
|
|
98
100
|
return isV1Design;
|
|
@@ -9,12 +9,13 @@ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
|
9
9
|
const utils_js_1 = require("../utils.js");
|
|
10
10
|
const viteIsSSR_js_1 = require("./viteIsSSR.js");
|
|
11
11
|
const debug = (0, utils_js_1.createDebugger)('vike:outDir');
|
|
12
|
-
function getOutDirs(
|
|
12
|
+
function getOutDirs(configGlobal, viteEnv) {
|
|
13
|
+
const configEnv = viteEnv?.config ?? configGlobal;
|
|
13
14
|
debug('getOutDirs()', new Error().stack);
|
|
14
|
-
const outDir = getOutDirFromViteResolvedConfig(
|
|
15
|
+
const outDir = getOutDirFromViteResolvedConfig(configEnv);
|
|
15
16
|
if (!isOutDirRoot(outDir))
|
|
16
|
-
assertOutDirResolved(outDir,
|
|
17
|
-
const outDirs = getOutDirsAll(outDir,
|
|
17
|
+
assertOutDirResolved(outDir, configEnv);
|
|
18
|
+
const outDirs = getOutDirsAll(outDir, configEnv.root);
|
|
18
19
|
return outDirs;
|
|
19
20
|
}
|
|
20
21
|
/** Appends `client/` or `server/` to `config.build.outDir` */
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.viteIsSSR = viteIsSSR;
|
|
4
|
+
exports.viteIsServerBuildEnvAny = viteIsServerBuildEnvAny;
|
|
4
5
|
exports.viteIsSSR_options = viteIsSSR_options;
|
|
5
6
|
exports.viteIsSSR_safe = viteIsSSR_safe;
|
|
6
7
|
const assert_js_1 = require("../../../utils/assert.js");
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
// TODO/now: rename_full viteIsSSR isViteServerBuildEnvSsr
|
|
9
|
+
function viteIsSSR(configGlobal, viteEnv) {
|
|
10
|
+
const configEnv = viteEnv?.config ?? configGlobal;
|
|
11
|
+
return !!configEnv?.build?.ssr;
|
|
12
|
+
}
|
|
13
|
+
// All server-side environments: not only `ssr` but, for example, also `vercel_edge` and `vercel_node`.
|
|
14
|
+
function viteIsServerBuildEnvAny(configGlobal, viteEnv) {
|
|
15
|
+
return viteEnv ? viteEnv.name === 'ssr' : viteIsSSR(configGlobal);
|
|
9
16
|
}
|
|
10
17
|
function viteIsSSR_options(options) {
|
|
11
18
|
return !!options?.ssr;
|
|
@@ -95,6 +95,7 @@ async function runPrerenderFromAutoRun(viteConfig, config) {
|
|
|
95
95
|
prerenderContextPublic = ret.prerenderContextPublic;
|
|
96
96
|
}
|
|
97
97
|
catch (err) {
|
|
98
|
+
// Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
98
99
|
console.error(err);
|
|
99
100
|
(0, logErrorHint_js_1.logErrorHint)(err);
|
|
100
101
|
process.exit(1);
|
|
@@ -34,6 +34,13 @@ function requireResolve(importPath, cwd) {
|
|
|
34
34
|
return importedFile;
|
|
35
35
|
}
|
|
36
36
|
function removeFileExtention(importPath) {
|
|
37
|
+
// Skip for Bun: https://github.com/vikejs/vike/issues/2204
|
|
38
|
+
//@ts-ignore
|
|
39
|
+
if (typeof Bun !== 'undefined') {
|
|
40
|
+
// https://bun.sh/guides/util/detect-bun
|
|
41
|
+
(0, assert_js_1.assert)(process.versions.bun);
|
|
42
|
+
return importPath;
|
|
43
|
+
}
|
|
37
44
|
for (const ext of isScriptFile_js_1.scriptFileExtensionList) {
|
|
38
45
|
const suffix = `.${ext}`;
|
|
39
46
|
if (importPath.endsWith(suffix)) {
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { handleAssetsManifest };
|
|
2
|
+
export { fixServerAssets_getBuildConfig };
|
|
2
3
|
export { fixServerAssets_isEnabled };
|
|
3
4
|
export { fixServerAssets_assertUsageCssCodeSplit };
|
|
4
5
|
export { fixServerAssets_assertUsageCssTarget };
|
|
5
6
|
export { writeManifestFile };
|
|
6
|
-
import { ViteManifest } from '../../../../shared/ViteManifest.js';
|
|
7
|
-
import { ResolvedConfig } from 'vite';
|
|
7
|
+
import type { ViteManifest } from '../../../../shared/ViteManifest.js';
|
|
8
|
+
import type { Environment, ResolvedConfig, Rollup, UserConfig } from 'vite';
|
|
9
|
+
type Bundle = Rollup.OutputBundle;
|
|
10
|
+
type Options = Rollup.NormalizedOutputOptions;
|
|
8
11
|
/**
|
|
9
12
|
* true => use workaround config.build.ssrEmitAssets
|
|
10
13
|
* false => use workaround extractAssets plugin
|
|
@@ -12,11 +15,13 @@ import { ResolvedConfig } from 'vite';
|
|
|
12
15
|
* Only used by V1 design.
|
|
13
16
|
*/
|
|
14
17
|
declare function fixServerAssets_isEnabled(): boolean;
|
|
15
|
-
/** https://github.com/vikejs/vike/issues/1339 */
|
|
16
|
-
declare function fixServerAssets(config: ResolvedConfig): Promise<{
|
|
17
|
-
clientManifestMod: ViteManifest;
|
|
18
|
-
serverManifestMod: ViteManifest;
|
|
19
|
-
}>;
|
|
20
18
|
declare function fixServerAssets_assertUsageCssCodeSplit(config: ResolvedConfig): void;
|
|
21
|
-
declare function fixServerAssets_assertUsageCssTarget(config: ResolvedConfig):
|
|
19
|
+
declare function fixServerAssets_assertUsageCssTarget(config: ResolvedConfig): void;
|
|
22
20
|
declare function writeManifestFile(manifest: ViteManifest, manifestFilePath: string): Promise<void>;
|
|
21
|
+
declare function fixServerAssets_getBuildConfig(config: UserConfig): {
|
|
22
|
+
readonly ssrEmitAssets: true | undefined;
|
|
23
|
+
readonly cssMinify: "esbuild" | undefined;
|
|
24
|
+
readonly manifest: "_temp_manifest.json";
|
|
25
|
+
readonly copyPublicDir: boolean | undefined;
|
|
26
|
+
};
|
|
27
|
+
declare function handleAssetsManifest(config: ResolvedConfig, viteEnv: Environment | undefined, options: Options, bundle: Bundle): Promise<void>;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
// TODO/now: move this file
|
|
2
|
+
// TODO/now: rename_full fixServerAssets handleAssetsManifest
|
|
3
|
+
export { handleAssetsManifest };
|
|
4
|
+
export { fixServerAssets_getBuildConfig };
|
|
2
5
|
export { fixServerAssets_isEnabled };
|
|
3
6
|
export { fixServerAssets_assertUsageCssCodeSplit };
|
|
4
7
|
export { fixServerAssets_assertUsageCssTarget };
|
|
@@ -7,14 +10,19 @@ import fs from 'fs/promises';
|
|
|
7
10
|
import fs_sync from 'fs';
|
|
8
11
|
import path from 'path';
|
|
9
12
|
import { existsSync } from 'fs';
|
|
10
|
-
import { assert, assertWarning, isEqualStringList, isObject, pLimit, unique } from '../../../utils.js';
|
|
13
|
+
import { assert, assertIsSingleModuleInstance, assertWarning, isEqualStringList, isObject, pLimit, unique } from '../../../utils.js';
|
|
11
14
|
import { isVirtualFileIdPageConfigValuesAll } from '../../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
|
|
12
15
|
import { manifestTempFile } from '../pluginBuildConfig.js';
|
|
13
16
|
import { getAssetsDir } from '../../../shared/getAssetsDir.js';
|
|
14
17
|
import pc from '@brillout/picocolors';
|
|
15
18
|
import { isV1Design } from '../../importUserCode/v1-design/getVikeConfig.js';
|
|
16
19
|
import { getOutDirs } from '../../../shared/getOutDirs.js';
|
|
17
|
-
import { viteIsSSR } from '../../../shared/viteIsSSR.js';
|
|
20
|
+
import { viteIsServerBuildEnvAny, viteIsSSR } from '../../../shared/viteIsSSR.js';
|
|
21
|
+
import { getVikeConfigPublic } from '../../commonConfig.js';
|
|
22
|
+
import { set_macro_ASSETS_MANIFEST } from '../pluginBuildEntry.js';
|
|
23
|
+
assertIsSingleModuleInstance('build/handleAssetsManifest.ts');
|
|
24
|
+
let assetsJsonFilePath;
|
|
25
|
+
// TODO/now move isV1Design() inside fixServerAssets_isEnabled()
|
|
18
26
|
/**
|
|
19
27
|
* true => use workaround config.build.ssrEmitAssets
|
|
20
28
|
* false => use workaround extractAssets plugin
|
|
@@ -214,13 +222,16 @@ function getHash(src) {
|
|
|
214
222
|
}
|
|
215
223
|
// https://github.com/vikejs/vike/issues/1993
|
|
216
224
|
function fixServerAssets_assertUsageCssCodeSplit(config) {
|
|
225
|
+
const isServerAssetsFixEnabled = fixServerAssets_isEnabled() && isV1Design(config);
|
|
226
|
+
if (!isServerAssetsFixEnabled)
|
|
227
|
+
return;
|
|
217
228
|
assertWarning(config.build.cssCodeSplit, `${pc.cyan('build.cssCodeSplit')} shouldn't be set to ${pc.cyan('false')} (https://github.com/vikejs/vike/issues/1993)`, { onlyOnce: true });
|
|
218
229
|
}
|
|
219
230
|
const targets = [];
|
|
220
|
-
|
|
231
|
+
function fixServerAssets_assertUsageCssTarget(config) {
|
|
221
232
|
if (!fixServerAssets_isEnabled())
|
|
222
233
|
return;
|
|
223
|
-
if (!
|
|
234
|
+
if (!isV1Design(config))
|
|
224
235
|
return;
|
|
225
236
|
const isServerSide = viteIsSSR(config);
|
|
226
237
|
assert(typeof isServerSide === 'boolean');
|
|
@@ -281,3 +292,45 @@ async function writeManifestFile(manifest, manifestFilePath) {
|
|
|
281
292
|
const manifestFileContent = JSON.stringify(manifest, null, 2);
|
|
282
293
|
await fs.writeFile(manifestFilePath, manifestFileContent, 'utf-8');
|
|
283
294
|
}
|
|
295
|
+
function fixServerAssets_getBuildConfig(config) {
|
|
296
|
+
const vike = getVikeConfigPublic(config);
|
|
297
|
+
const isServerAssetsFixEnabled = fixServerAssets_isEnabled() && isV1Design(config);
|
|
298
|
+
return {
|
|
299
|
+
// https://github.com/vikejs/vike/issues/1339
|
|
300
|
+
ssrEmitAssets: isServerAssetsFixEnabled ? true : undefined,
|
|
301
|
+
// Required if `ssrEmitAssets: true`, see https://github.com/vitejs/vite/pull/11430#issuecomment-1454800934
|
|
302
|
+
cssMinify: isServerAssetsFixEnabled ? 'esbuild' : undefined,
|
|
303
|
+
manifest: manifestTempFile,
|
|
304
|
+
copyPublicDir: vike.config.viteEnvironmentAPI
|
|
305
|
+
? // Already set by vike:build:pluginBuildApp
|
|
306
|
+
undefined
|
|
307
|
+
: !viteIsSSR(config)
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
async function handleAssetsManifest(config, viteEnv, options, bundle) {
|
|
311
|
+
if (viteIsSSR(config, viteEnv)) {
|
|
312
|
+
assert(!assetsJsonFilePath);
|
|
313
|
+
const outDirs = getOutDirs(config, viteEnv);
|
|
314
|
+
assetsJsonFilePath = path.posix.join(outDirs.outDirRoot, 'assets.json');
|
|
315
|
+
await writeAssetsManifestFile(outDirs, assetsJsonFilePath, config);
|
|
316
|
+
}
|
|
317
|
+
if (viteIsServerBuildEnvAny(config, viteEnv)) {
|
|
318
|
+
assert(assetsJsonFilePath);
|
|
319
|
+
// Replace __VITE_ASSETS_MANIFEST__ in all server-side bundles
|
|
320
|
+
await set_macro_ASSETS_MANIFEST(options, bundle, assetsJsonFilePath);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
async function writeAssetsManifestFile(outDirs, assetsJsonFilePath, config) {
|
|
324
|
+
const isServerAssetsFixEnabled = fixServerAssets_isEnabled() && isV1Design(config);
|
|
325
|
+
const clientManifestFilePath = path.posix.join(outDirs.outDirClient, manifestTempFile);
|
|
326
|
+
const serverManifestFilePath = path.posix.join(outDirs.outDirServer, manifestTempFile);
|
|
327
|
+
if (!isServerAssetsFixEnabled) {
|
|
328
|
+
await fs.copyFile(clientManifestFilePath, assetsJsonFilePath);
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
const { clientManifestMod } = await fixServerAssets(config);
|
|
332
|
+
await writeManifestFile(clientManifestMod, assetsJsonFilePath);
|
|
333
|
+
}
|
|
334
|
+
await fs.rm(clientManifestFilePath);
|
|
335
|
+
await fs.rm(serverManifestFilePath);
|
|
336
|
+
}
|
|
@@ -10,6 +10,7 @@ import { logErrorHint } from '../../../runtime/renderPage/logErrorHint.js';
|
|
|
10
10
|
import { manifestTempFile } from './pluginBuildConfig.js';
|
|
11
11
|
import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
|
|
12
12
|
import { isVikeCliOrApi } from '../../../api/context.js';
|
|
13
|
+
import { handleAssetsManifest } from './pluginAssetsManifest/fixServerAssets.js';
|
|
13
14
|
let forceExit = false;
|
|
14
15
|
function pluginAutoFullBuild() {
|
|
15
16
|
let config;
|
|
@@ -25,19 +26,13 @@ function pluginAutoFullBuild() {
|
|
|
25
26
|
abortViteBuildSsr(vikeConfig);
|
|
26
27
|
},
|
|
27
28
|
writeBundle: {
|
|
28
|
-
/* We can't use this because it breaks Vite's logging. TODO: try again with latest Vite version.
|
|
29
|
+
/* We can't use this because it breaks Vite's logging. TODO/eventually: try again with latest Vite version.
|
|
29
30
|
sequential: true,
|
|
30
31
|
order: 'pre',
|
|
31
32
|
*/
|
|
32
|
-
async handler(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
catch (err) {
|
|
37
|
-
// Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], for example see https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
38
|
-
console.error(err);
|
|
39
|
-
process.exit(1);
|
|
40
|
-
}
|
|
33
|
+
async handler(options, bundle) {
|
|
34
|
+
await handleAssetsManifest(config, this.environment, options, bundle);
|
|
35
|
+
await triggerFullBuild(config, vikeConfig, bundle);
|
|
41
36
|
}
|
|
42
37
|
}
|
|
43
38
|
},
|
|
@@ -74,6 +69,7 @@ async function triggerFullBuild(config, vikeConfig, bundle) {
|
|
|
74
69
|
await build(setSSR(configInline));
|
|
75
70
|
}
|
|
76
71
|
catch (err) {
|
|
72
|
+
// Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
77
73
|
console.error(err);
|
|
78
74
|
logErrorHint(err);
|
|
79
75
|
process.exit(1);
|
|
@@ -9,7 +9,7 @@ import { getVikeConfigPublic } from '../commonConfig.js';
|
|
|
9
9
|
function pluginBuildApp() {
|
|
10
10
|
let config;
|
|
11
11
|
// `builder.buildApp()` can be overriden by another plugin e.g vike-vercel https://github.com/vikejs/vike/pull/2184#issuecomment-2659425195
|
|
12
|
-
// In that case, we
|
|
12
|
+
// In that case, we shouldn't `forceExit`.
|
|
13
13
|
let forceExit = false;
|
|
14
14
|
return [
|
|
15
15
|
{
|
|
@@ -13,6 +13,7 @@ import { getFilePathResolved } from '../../shared/getFilePath.js';
|
|
|
13
13
|
import { getConfigValueBuildTime } from '../../../../shared/page-configs/getConfigValueBuildTime.js';
|
|
14
14
|
import { viteIsSSR } from '../../shared/viteIsSSR.js';
|
|
15
15
|
import { resolveOutDir } from '../../shared/getOutDirs.js';
|
|
16
|
+
import { fixServerAssets_assertUsageCssCodeSplit, fixServerAssets_assertUsageCssTarget, fixServerAssets_getBuildConfig } from './pluginAssetsManifest/fixServerAssets.js';
|
|
16
17
|
// @ts-ignore import.meta.url is shimmed at dist/cjs by dist-cjs-fixup.js.
|
|
17
18
|
const importMetaUrl = import.meta.url;
|
|
18
19
|
const require_ = createRequire(importMetaUrl);
|
|
@@ -34,6 +35,7 @@ function pluginBuildConfig() {
|
|
|
34
35
|
assert(Object.keys(entries).length > 0);
|
|
35
36
|
config.build.rollupOptions.input = injectRollupInputs(entries, config);
|
|
36
37
|
addLogHook();
|
|
38
|
+
fixServerAssets_assertUsageCssCodeSplit(config);
|
|
37
39
|
}
|
|
38
40
|
},
|
|
39
41
|
config: {
|
|
@@ -42,7 +44,8 @@ function pluginBuildConfig() {
|
|
|
42
44
|
onSetupBuild();
|
|
43
45
|
return {
|
|
44
46
|
build: {
|
|
45
|
-
outDir: resolveOutDir(config)
|
|
47
|
+
outDir: resolveOutDir(config),
|
|
48
|
+
...fixServerAssets_getBuildConfig(config)
|
|
46
49
|
}
|
|
47
50
|
};
|
|
48
51
|
}
|
|
@@ -50,8 +53,9 @@ function pluginBuildConfig() {
|
|
|
50
53
|
buildStart() {
|
|
51
54
|
onSetupBuild();
|
|
52
55
|
},
|
|
53
|
-
|
|
56
|
+
closeBundle() {
|
|
54
57
|
onSetupBuild();
|
|
58
|
+
fixServerAssets_assertUsageCssTarget(config);
|
|
55
59
|
}
|
|
56
60
|
}
|
|
57
61
|
];
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { build };
|
|
2
|
-
import { pluginAssetsManifest } from './build/pluginAssetsManifest.js';
|
|
3
2
|
import { pluginBuildApp } from './build/pluginBuildApp.js';
|
|
4
3
|
import { pluginDistPackageJsonFile } from './build/pluginDistPackageJsonFile.js';
|
|
5
4
|
import { pluginSuppressRollupWarning } from './build/pluginSuppressRollupWarning.js';
|
|
@@ -9,7 +8,6 @@ import { pluginBuildEntry } from './build/pluginBuildEntry.js';
|
|
|
9
8
|
import { pluginBuildConfig } from './build/pluginBuildConfig.js';
|
|
10
9
|
function build() {
|
|
11
10
|
return [
|
|
12
|
-
...pluginAssetsManifest(),
|
|
13
11
|
...pluginBuildConfig(),
|
|
14
12
|
...pluginBuildApp(),
|
|
15
13
|
...pluginAutoFullBuild(),
|
|
@@ -8,7 +8,7 @@ export { getConfigDefinitionOptional };
|
|
|
8
8
|
export type { VikeConfigObject };
|
|
9
9
|
import type { PageConfigGlobalBuildTime, PageConfigBuildTime } from '../../../../../shared/page-configs/PageConfig.js';
|
|
10
10
|
import { type ConfigDefinitions, type ConfigDefinitionInternal } from './getVikeConfig/configDefinitionsBuiltIn.js';
|
|
11
|
-
import type { ResolvedConfig } from 'vite';
|
|
11
|
+
import type { ResolvedConfig, UserConfig } from 'vite';
|
|
12
12
|
import { type PageConfigUserFriendly, type PageConfigsUserFriendly } from '../../../../../shared/page-configs/getPageConfigUserFriendly.js';
|
|
13
13
|
import { type PlusFile } from './getVikeConfig/getPlusFilesAll.js';
|
|
14
14
|
type VikeConfigObject = {
|
|
@@ -23,7 +23,7 @@ declare function getVikeConfig(config: ResolvedConfig, { doNotRestartViteOnError
|
|
|
23
23
|
doNotRestartViteOnError?: true;
|
|
24
24
|
}): Promise<VikeConfigObject>;
|
|
25
25
|
declare function getVikeConfig2(userRootDir: string, isDev: boolean, vikeVitePluginOptions: unknown): Promise<VikeConfigObject>;
|
|
26
|
-
declare function isV1Design(config: ResolvedConfig):
|
|
26
|
+
declare function isV1Design(config: ResolvedConfig | UserConfig): boolean;
|
|
27
27
|
declare function getConfigDefinitionOptional(configDefinitions: ConfigDefinitions, configName: string): ConfigDefinitionInternal | null;
|
|
28
28
|
declare function getConfVal(plusFile: PlusFile, configName: string): null | {
|
|
29
29
|
value: unknown;
|
|
@@ -85,8 +85,10 @@ async function getVikeConfigEntry(userRootDir, isDev, vikeVitePluginOptions, doN
|
|
|
85
85
|
}
|
|
86
86
|
return await vikeConfigPromise;
|
|
87
87
|
}
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
// TODO/now update all isV1Design() usage
|
|
89
|
+
function isV1Design(config) {
|
|
90
|
+
const vikeConfig = config._vikeConfigObject;
|
|
91
|
+
assert(vikeConfig);
|
|
90
92
|
const { pageConfigs } = vikeConfig;
|
|
91
93
|
const isV1Design = pageConfigs.length > 0;
|
|
92
94
|
return isV1Design;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { getOutDirs };
|
|
2
2
|
export { resolveOutDir };
|
|
3
3
|
export type { OutDirs };
|
|
4
|
-
import type { UserConfig, ResolvedConfig } from 'vite';
|
|
4
|
+
import type { UserConfig, ResolvedConfig, Environment } from 'vite';
|
|
5
5
|
type OutDirs = {
|
|
6
6
|
/** Absolute path to `outDir` */
|
|
7
7
|
outDirRoot: string;
|
|
@@ -10,6 +10,6 @@ type OutDirs = {
|
|
|
10
10
|
/** Absolute path to `${outDir}/server` */
|
|
11
11
|
outDirServer: string;
|
|
12
12
|
};
|
|
13
|
-
declare function getOutDirs(
|
|
13
|
+
declare function getOutDirs(configGlobal: ResolvedConfig, viteEnv?: Environment): OutDirs;
|
|
14
14
|
/** Appends `client/` or `server/` to `config.build.outDir` */
|
|
15
15
|
declare function resolveOutDir(config: UserConfig, isSSR?: true): string;
|
|
@@ -4,12 +4,13 @@ import pc from '@brillout/picocolors';
|
|
|
4
4
|
import { assert, assertPosixPath, assertUsage, createDebugger, pathJoin, toPosixPath } from '../utils.js';
|
|
5
5
|
import { viteIsSSR } from './viteIsSSR.js';
|
|
6
6
|
const debug = createDebugger('vike:outDir');
|
|
7
|
-
function getOutDirs(
|
|
7
|
+
function getOutDirs(configGlobal, viteEnv) {
|
|
8
|
+
const configEnv = viteEnv?.config ?? configGlobal;
|
|
8
9
|
debug('getOutDirs()', new Error().stack);
|
|
9
|
-
const outDir = getOutDirFromViteResolvedConfig(
|
|
10
|
+
const outDir = getOutDirFromViteResolvedConfig(configEnv);
|
|
10
11
|
if (!isOutDirRoot(outDir))
|
|
11
|
-
assertOutDirResolved(outDir,
|
|
12
|
-
const outDirs = getOutDirsAll(outDir,
|
|
12
|
+
assertOutDirResolved(outDir, configEnv);
|
|
13
|
+
const outDirs = getOutDirsAll(outDir, configEnv.root);
|
|
13
14
|
return outDirs;
|
|
14
15
|
}
|
|
15
16
|
/** Appends `client/` or `server/` to `config.build.outDir` */
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { viteIsSSR };
|
|
2
|
+
export { viteIsServerBuildEnvAny };
|
|
2
3
|
export { viteIsSSR_options };
|
|
3
4
|
export { viteIsSSR_safe };
|
|
4
|
-
import type { ResolvedConfig, UserConfig } from 'vite';
|
|
5
|
-
declare function viteIsSSR(
|
|
5
|
+
import type { Environment, ResolvedConfig, UserConfig } from 'vite';
|
|
6
|
+
declare function viteIsSSR(configGlobal: ResolvedConfig | UserConfig, viteEnv?: Environment): boolean;
|
|
7
|
+
declare function viteIsServerBuildEnvAny(configGlobal: ResolvedConfig, viteEnv: Environment | undefined): boolean;
|
|
6
8
|
declare function viteIsSSR_options(options: {
|
|
7
9
|
ssr?: boolean;
|
|
8
10
|
} | undefined): boolean;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
export { viteIsSSR };
|
|
2
|
+
export { viteIsServerBuildEnvAny };
|
|
2
3
|
export { viteIsSSR_options };
|
|
3
4
|
export { viteIsSSR_safe };
|
|
4
5
|
import { assert } from '../../../utils/assert.js';
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
// TODO/now: rename_full viteIsSSR isViteServerBuildEnvSsr
|
|
7
|
+
function viteIsSSR(configGlobal, viteEnv) {
|
|
8
|
+
const configEnv = viteEnv?.config ?? configGlobal;
|
|
9
|
+
return !!configEnv?.build?.ssr;
|
|
10
|
+
}
|
|
11
|
+
// All server-side environments: not only `ssr` but, for example, also `vercel_edge` and `vercel_node`.
|
|
12
|
+
function viteIsServerBuildEnvAny(configGlobal, viteEnv) {
|
|
13
|
+
return viteEnv ? viteEnv.name === 'ssr' : viteIsSSR(configGlobal);
|
|
7
14
|
}
|
|
8
15
|
function viteIsSSR_options(options) {
|
|
9
16
|
return !!options?.ssr;
|
|
@@ -57,6 +57,7 @@ async function runPrerenderFromAutoRun(viteConfig, config) {
|
|
|
57
57
|
prerenderContextPublic = ret.prerenderContextPublic;
|
|
58
58
|
}
|
|
59
59
|
catch (err) {
|
|
60
|
+
// Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
60
61
|
console.error(err);
|
|
61
62
|
logErrorHint(err);
|
|
62
63
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.223-commit-
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.223-commit-f1089b4";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Automatically updated by @brillout/release-me
|
|
2
|
-
export const PROJECT_VERSION = '0.4.223-commit-
|
|
2
|
+
export const PROJECT_VERSION = '0.4.223-commit-f1089b4';
|
|
@@ -32,6 +32,13 @@ function requireResolve(importPath, cwd) {
|
|
|
32
32
|
return importedFile;
|
|
33
33
|
}
|
|
34
34
|
function removeFileExtention(importPath) {
|
|
35
|
+
// Skip for Bun: https://github.com/vikejs/vike/issues/2204
|
|
36
|
+
//@ts-ignore
|
|
37
|
+
if (typeof Bun !== 'undefined') {
|
|
38
|
+
// https://bun.sh/guides/util/detect-bun
|
|
39
|
+
assert(process.versions.bun);
|
|
40
|
+
return importPath;
|
|
41
|
+
}
|
|
35
42
|
for (const ext of scriptFileExtensionList) {
|
|
36
43
|
const suffix = `.${ext}`;
|
|
37
44
|
if (importPath.endsWith(suffix)) {
|
package/package.json
CHANGED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.pluginAssetsManifest = pluginAssetsManifest;
|
|
7
|
-
const getVikeConfig_js_1 = require("../importUserCode/v1-design/getVikeConfig.js");
|
|
8
|
-
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
|
-
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const fixServerAssets_js_1 = require("../build/pluginAssetsManifest/fixServerAssets.js");
|
|
11
|
-
const pluginBuildEntry_js_1 = require("./pluginBuildEntry.js");
|
|
12
|
-
const getOutDirs_js_1 = require("../../shared/getOutDirs.js");
|
|
13
|
-
const viteIsSSR_js_1 = require("../../shared/viteIsSSR.js");
|
|
14
|
-
const commonConfig_js_1 = require("../commonConfig.js");
|
|
15
|
-
const manifestTempFile = '_temp_manifest.json';
|
|
16
|
-
function pluginAssetsManifest() {
|
|
17
|
-
let isServerAssetsFixEnabled;
|
|
18
|
-
let config;
|
|
19
|
-
let assetsJsonFilePath;
|
|
20
|
-
return [
|
|
21
|
-
{
|
|
22
|
-
name: 'vike:build:pluginAssetsManifest:post',
|
|
23
|
-
apply: 'build',
|
|
24
|
-
enforce: 'post',
|
|
25
|
-
configResolved: {
|
|
26
|
-
order: 'post',
|
|
27
|
-
async handler(config_) {
|
|
28
|
-
config = config_;
|
|
29
|
-
isServerAssetsFixEnabled = (0, fixServerAssets_js_1.fixServerAssets_isEnabled)() && (await (0, getVikeConfig_js_1.isV1Design)(config));
|
|
30
|
-
if (isServerAssetsFixEnabled) {
|
|
31
|
-
// https://github.com/vikejs/vike/issues/1339
|
|
32
|
-
config.build.ssrEmitAssets = true;
|
|
33
|
-
// Required if `ssrEmitAssets: true`, see https://github.com/vitejs/vite/pull/11430#issuecomment-1454800934
|
|
34
|
-
config.build.cssMinify = 'esbuild';
|
|
35
|
-
(0, fixServerAssets_js_1.fixServerAssets_assertUsageCssCodeSplit)(config);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
config: {
|
|
40
|
-
order: 'post',
|
|
41
|
-
handler(config) {
|
|
42
|
-
const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
|
|
43
|
-
return {
|
|
44
|
-
build: {
|
|
45
|
-
manifest: manifestTempFile,
|
|
46
|
-
copyPublicDir: vike.config.viteEnvironmentAPI
|
|
47
|
-
? // Already set by vike:build:pluginBuildApp
|
|
48
|
-
undefined
|
|
49
|
-
: !(0, viteIsSSR_js_1.viteIsSSR)(config)
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
async closeBundle() {
|
|
55
|
-
await (0, fixServerAssets_js_1.fixServerAssets_assertUsageCssTarget)(config);
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: 'vike:build:pluginAssetsManifest:pre',
|
|
60
|
-
apply: 'build',
|
|
61
|
-
// Compatiblity with Environment API. It replaces `vike:build:pluginAssetsManifest:pre` when compatible
|
|
62
|
-
// See https://vite.dev/guide/api-environment-plugins.html#per-environment-plugins
|
|
63
|
-
applyToEnvironment() {
|
|
64
|
-
return {
|
|
65
|
-
name: 'vike:build:pluginAssetsManifest:pre:env-api-compat',
|
|
66
|
-
apply: 'build',
|
|
67
|
-
enforce: 'pre',
|
|
68
|
-
writeBundle: {
|
|
69
|
-
order: 'pre',
|
|
70
|
-
sequential: true,
|
|
71
|
-
async handler(options, bundle) {
|
|
72
|
-
if (this.environment.name === 'ssr') {
|
|
73
|
-
await writeAssetsManifestFile((0, getOutDirs_js_1.getOutDirs)(this.environment.config));
|
|
74
|
-
}
|
|
75
|
-
if ((0, viteIsSSR_js_1.viteIsSSR)(this.environment.config)) {
|
|
76
|
-
// Replace __VITE_ASSETS_MANIFEST__ in all server-side bundles
|
|
77
|
-
await (0, pluginBuildEntry_js_1.set_macro_ASSETS_MANIFEST)(options, bundle, assetsJsonFilePath);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
},
|
|
83
|
-
// Ensures that we can reuse `assetsJsonFilePath`
|
|
84
|
-
sharedDuringBuild: true,
|
|
85
|
-
// Make sure other writeBundle() hooks are called after this writeBundle() hook.
|
|
86
|
-
// - set_macro_ASSETS_MANIFEST() needs to be called before dist/server/ code is executed.
|
|
87
|
-
// - For example, the writeBundle() hook of vite-plugin-vercel needs to be called after this writeBundle() hook, otherwise: https://github.com/vikejs/vike/issues/1527
|
|
88
|
-
enforce: 'pre',
|
|
89
|
-
writeBundle: {
|
|
90
|
-
order: 'pre',
|
|
91
|
-
sequential: true,
|
|
92
|
-
async handler(options, bundle) {
|
|
93
|
-
if ((0, viteIsSSR_js_1.viteIsSSR)(config)) {
|
|
94
|
-
await writeAssetsManifestFile((0, getOutDirs_js_1.getOutDirs)(config));
|
|
95
|
-
await (0, pluginBuildEntry_js_1.set_macro_ASSETS_MANIFEST)(options, bundle, assetsJsonFilePath);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
];
|
|
101
|
-
async function writeAssetsManifestFile(outDirs) {
|
|
102
|
-
assetsJsonFilePath = path_1.default.posix.join(outDirs.outDirRoot, 'assets.json');
|
|
103
|
-
const clientManifestFilePath = path_1.default.posix.join(outDirs.outDirClient, manifestTempFile);
|
|
104
|
-
const serverManifestFilePath = path_1.default.posix.join(outDirs.outDirServer, manifestTempFile);
|
|
105
|
-
if (!isServerAssetsFixEnabled) {
|
|
106
|
-
await promises_1.default.copyFile(clientManifestFilePath, assetsJsonFilePath);
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
const { clientManifestMod } = await (0, fixServerAssets_js_1.fixServerAssets)(config);
|
|
110
|
-
await (0, fixServerAssets_js_1.writeManifestFile)(clientManifestMod, assetsJsonFilePath);
|
|
111
|
-
}
|
|
112
|
-
await promises_1.default.rm(clientManifestFilePath);
|
|
113
|
-
await promises_1.default.rm(serverManifestFilePath);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
export { pluginAssetsManifest };
|
|
2
|
-
import { isV1Design } from '../importUserCode/v1-design/getVikeConfig.js';
|
|
3
|
-
import fs from 'fs/promises';
|
|
4
|
-
import path from 'path';
|
|
5
|
-
import { fixServerAssets, fixServerAssets_assertUsageCssCodeSplit, fixServerAssets_assertUsageCssTarget, fixServerAssets_isEnabled, writeManifestFile } from '../build/pluginAssetsManifest/fixServerAssets.js';
|
|
6
|
-
import { set_macro_ASSETS_MANIFEST } from './pluginBuildEntry.js';
|
|
7
|
-
import { getOutDirs } from '../../shared/getOutDirs.js';
|
|
8
|
-
import { viteIsSSR } from '../../shared/viteIsSSR.js';
|
|
9
|
-
import { getVikeConfigPublic } from '../commonConfig.js';
|
|
10
|
-
const manifestTempFile = '_temp_manifest.json';
|
|
11
|
-
function pluginAssetsManifest() {
|
|
12
|
-
let isServerAssetsFixEnabled;
|
|
13
|
-
let config;
|
|
14
|
-
let assetsJsonFilePath;
|
|
15
|
-
return [
|
|
16
|
-
{
|
|
17
|
-
name: 'vike:build:pluginAssetsManifest:post',
|
|
18
|
-
apply: 'build',
|
|
19
|
-
enforce: 'post',
|
|
20
|
-
configResolved: {
|
|
21
|
-
order: 'post',
|
|
22
|
-
async handler(config_) {
|
|
23
|
-
config = config_;
|
|
24
|
-
isServerAssetsFixEnabled = fixServerAssets_isEnabled() && (await isV1Design(config));
|
|
25
|
-
if (isServerAssetsFixEnabled) {
|
|
26
|
-
// https://github.com/vikejs/vike/issues/1339
|
|
27
|
-
config.build.ssrEmitAssets = true;
|
|
28
|
-
// Required if `ssrEmitAssets: true`, see https://github.com/vitejs/vite/pull/11430#issuecomment-1454800934
|
|
29
|
-
config.build.cssMinify = 'esbuild';
|
|
30
|
-
fixServerAssets_assertUsageCssCodeSplit(config);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
config: {
|
|
35
|
-
order: 'post',
|
|
36
|
-
handler(config) {
|
|
37
|
-
const vike = getVikeConfigPublic(config);
|
|
38
|
-
return {
|
|
39
|
-
build: {
|
|
40
|
-
manifest: manifestTempFile,
|
|
41
|
-
copyPublicDir: vike.config.viteEnvironmentAPI
|
|
42
|
-
? // Already set by vike:build:pluginBuildApp
|
|
43
|
-
undefined
|
|
44
|
-
: !viteIsSSR(config)
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
async closeBundle() {
|
|
50
|
-
await fixServerAssets_assertUsageCssTarget(config);
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: 'vike:build:pluginAssetsManifest:pre',
|
|
55
|
-
apply: 'build',
|
|
56
|
-
// Compatiblity with Environment API. It replaces `vike:build:pluginAssetsManifest:pre` when compatible
|
|
57
|
-
// See https://vite.dev/guide/api-environment-plugins.html#per-environment-plugins
|
|
58
|
-
applyToEnvironment() {
|
|
59
|
-
return {
|
|
60
|
-
name: 'vike:build:pluginAssetsManifest:pre:env-api-compat',
|
|
61
|
-
apply: 'build',
|
|
62
|
-
enforce: 'pre',
|
|
63
|
-
writeBundle: {
|
|
64
|
-
order: 'pre',
|
|
65
|
-
sequential: true,
|
|
66
|
-
async handler(options, bundle) {
|
|
67
|
-
if (this.environment.name === 'ssr') {
|
|
68
|
-
await writeAssetsManifestFile(getOutDirs(this.environment.config));
|
|
69
|
-
}
|
|
70
|
-
if (viteIsSSR(this.environment.config)) {
|
|
71
|
-
// Replace __VITE_ASSETS_MANIFEST__ in all server-side bundles
|
|
72
|
-
await set_macro_ASSETS_MANIFEST(options, bundle, assetsJsonFilePath);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
},
|
|
78
|
-
// Ensures that we can reuse `assetsJsonFilePath`
|
|
79
|
-
sharedDuringBuild: true,
|
|
80
|
-
// Make sure other writeBundle() hooks are called after this writeBundle() hook.
|
|
81
|
-
// - set_macro_ASSETS_MANIFEST() needs to be called before dist/server/ code is executed.
|
|
82
|
-
// - For example, the writeBundle() hook of vite-plugin-vercel needs to be called after this writeBundle() hook, otherwise: https://github.com/vikejs/vike/issues/1527
|
|
83
|
-
enforce: 'pre',
|
|
84
|
-
writeBundle: {
|
|
85
|
-
order: 'pre',
|
|
86
|
-
sequential: true,
|
|
87
|
-
async handler(options, bundle) {
|
|
88
|
-
if (viteIsSSR(config)) {
|
|
89
|
-
await writeAssetsManifestFile(getOutDirs(config));
|
|
90
|
-
await set_macro_ASSETS_MANIFEST(options, bundle, assetsJsonFilePath);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
];
|
|
96
|
-
async function writeAssetsManifestFile(outDirs) {
|
|
97
|
-
assetsJsonFilePath = path.posix.join(outDirs.outDirRoot, 'assets.json');
|
|
98
|
-
const clientManifestFilePath = path.posix.join(outDirs.outDirClient, manifestTempFile);
|
|
99
|
-
const serverManifestFilePath = path.posix.join(outDirs.outDirServer, manifestTempFile);
|
|
100
|
-
if (!isServerAssetsFixEnabled) {
|
|
101
|
-
await fs.copyFile(clientManifestFilePath, assetsJsonFilePath);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
const { clientManifestMod } = await fixServerAssets(config);
|
|
105
|
-
await writeManifestFile(clientManifestMod, assetsJsonFilePath);
|
|
106
|
-
}
|
|
107
|
-
await fs.rm(clientManifestFilePath);
|
|
108
|
-
await fs.rm(serverManifestFilePath);
|
|
109
|
-
}
|
|
110
|
-
}
|