vike 0.4.223 → 0.4.224-commit-f0d0f8a
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/api/build.js +4 -37
- package/dist/cjs/node/api/prepareViteApiCall.js +9 -3
- package/dist/cjs/node/plugin/index.js +8 -20
- package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -1
- package/dist/cjs/node/plugin/plugins/{buildConfig/fixServerAssets.js → build/handleAssetsManifest.js} +130 -52
- package/dist/cjs/node/plugin/plugins/build/pluginAutoFullBuild.js +145 -0
- package/dist/cjs/node/plugin/plugins/build/pluginBuildApp.js +52 -0
- package/dist/cjs/node/plugin/plugins/{buildConfig.js → build/pluginBuildConfig.js} +22 -84
- package/dist/cjs/node/plugin/plugins/{buildEntry/index.js → build/pluginBuildEntry.js} +9 -9
- package/dist/cjs/node/plugin/plugins/{distFileNames.js → build/pluginDistFileNames.js} +7 -7
- package/dist/cjs/node/plugin/plugins/{packageJsonFile.js → build/pluginDistPackageJsonFile.js} +6 -6
- package/dist/cjs/node/plugin/plugins/{suppressRollupWarning.js → build/pluginSuppressRollupWarning.js} +3 -3
- package/dist/cjs/node/plugin/plugins/build.js +21 -0
- package/dist/cjs/node/plugin/plugins/commonConfig.js +22 -4
- package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -1
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/cjs/node/plugin/plugins/envVars.js +2 -2
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +9 -9
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
- package/dist/cjs/node/plugin/plugins/fileEnv.js +5 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +2 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +7 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +16 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +50 -64
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +2 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +19 -7
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +277 -212
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/virtual-files/getVirtualFilePageConfigValuesAll.js +4 -4
- package/dist/cjs/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/cjs/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/cjs/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/cjs/node/plugin/shared/getOutDirs.js +8 -7
- package/dist/cjs/node/plugin/shared/isViteServerBuild.js +47 -0
- package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +1 -1
- package/dist/cjs/node/plugin/utils.js +1 -0
- package/dist/cjs/node/prerender/context.js +3 -8
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +30 -21
- package/dist/cjs/node/prerender/runPrerender.js +28 -30
- package/dist/cjs/node/prerender/utils.js +1 -0
- package/dist/cjs/node/runtime/html/stream.js +7 -0
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +13 -2
- package/dist/cjs/shared/getPageContextUrlComputed.js +1 -1
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +2 -5
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +3 -1
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +20 -9
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/debug.js +2 -1
- package/dist/cjs/utils/findFile.js +1 -1
- package/dist/cjs/utils/findPackageJson.js +1 -1
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +10 -4
- package/dist/cjs/utils/path.js +1 -0
- package/dist/cjs/utils/requireResolve.js +11 -4
- package/dist/cjs/utils/sorter.js +0 -3
- package/dist/esm/client/client-routing-runtime/index.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/index.js +1 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +8 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +10 -1
- package/dist/esm/node/api/build.js +4 -4
- package/dist/esm/node/api/prepareViteApiCall.js +9 -3
- package/dist/esm/node/plugin/index.d.ts +2 -1
- package/dist/esm/node/plugin/index.js +4 -17
- package/dist/esm/node/plugin/plugins/baseUrls.js +3 -1
- package/dist/esm/node/plugin/plugins/build/handleAssetsManifest.d.ts +18 -0
- package/dist/esm/node/plugin/plugins/{buildConfig/fixServerAssets.js → build/handleAssetsManifest.js} +131 -53
- package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.d.ts +5 -0
- package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.js +140 -0
- package/dist/esm/node/plugin/plugins/build/pluginBuildApp.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/build/pluginBuildApp.js +50 -0
- package/dist/esm/node/plugin/plugins/{buildConfig.d.ts → build/pluginBuildConfig.d.ts} +3 -3
- package/dist/esm/node/plugin/plugins/{buildConfig.js → build/pluginBuildConfig.js} +22 -81
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.d.ts +7 -0
- package/dist/esm/node/plugin/plugins/{buildEntry/index.js → build/pluginBuildEntry.js} +9 -9
- package/dist/esm/node/plugin/plugins/build/pluginDistFileNames.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{distFileNames.js → build/pluginDistFileNames.js} +7 -7
- package/dist/esm/node/plugin/plugins/build/pluginDistPackageJsonFile.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{packageJsonFile.js → build/pluginDistPackageJsonFile.js} +7 -6
- package/dist/esm/node/plugin/plugins/build/pluginSuppressRollupWarning.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{suppressRollupWarning.js → build/pluginSuppressRollupWarning.js} +3 -3
- package/dist/esm/node/plugin/plugins/build.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/build.js +19 -0
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +16 -6
- package/dist/esm/node/plugin/plugins/commonConfig.js +22 -4
- package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -1
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
- package/dist/esm/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/esm/node/plugin/plugins/envVars.js +2 -2
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +10 -10
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
- package/dist/esm/node/plugin/plugins/fileEnv.js +5 -2
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +2 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +7 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +13 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +50 -64
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +2 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +0 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +20 -8
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +8 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +279 -214
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/virtual-files/getVirtualFilePageConfigValuesAll.js +4 -4
- package/dist/esm/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/esm/node/plugin/shared/addSsrMiddleware.d.ts +1 -1
- package/dist/esm/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/esm/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/esm/node/plugin/shared/getHttpRequestAsyncStore.js +1 -3
- package/dist/esm/node/plugin/shared/getOutDirs.d.ts +2 -2
- package/dist/esm/node/plugin/shared/getOutDirs.js +8 -7
- package/dist/esm/node/plugin/shared/isViteServerBuild.d.ts +15 -0
- package/dist/esm/node/plugin/shared/isViteServerBuild.js +45 -0
- package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +1 -1
- package/dist/esm/node/plugin/utils.d.ts +1 -0
- package/dist/esm/node/plugin/utils.js +1 -0
- package/dist/esm/node/prerender/context.d.ts +0 -2
- package/dist/esm/node/prerender/context.js +4 -9
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +11 -6
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +31 -22
- package/dist/esm/node/prerender/runPrerender.d.ts +7 -25
- package/dist/esm/node/prerender/runPrerender.js +29 -31
- package/dist/esm/node/prerender/utils.d.ts +1 -0
- package/dist/esm/node/prerender/utils.js +1 -0
- package/dist/esm/node/runtime/globalContext.d.ts +3 -2
- package/dist/esm/node/runtime/html/stream.js +7 -0
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +13 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +165 -5
- package/dist/esm/shared/getPageContextUrlComputed.js +1 -1
- package/dist/esm/shared/page-configs/Config.d.ts +12 -2
- package/dist/esm/shared/page-configs/PageConfig.d.ts +5 -5
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +2 -5
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +3 -1
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +2 -0
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +20 -9
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/debug.js +2 -1
- package/dist/esm/utils/findFile.js +1 -1
- package/dist/esm/utils/findPackageJson.js +1 -1
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +8 -2
- package/dist/esm/utils/path.js +1 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/requireResolve.js +11 -4
- package/dist/esm/utils/sorter.d.ts +18 -5
- package/dist/esm/utils/sorter.js +0 -3
- package/package.json +9 -16
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +0 -119
- package/dist/cjs/node/plugin/plugins/buildApp.js +0 -76
- package/dist/cjs/node/plugin/plugins/removeRequireHookPlugin.js +0 -17
- package/dist/cjs/node/plugin/shared/getFullBuildInlineConfig.js +0 -20
- package/dist/cjs/node/plugin/shared/viteIsSSR.js +0 -31
- package/dist/esm/node/plugin/plugins/autoFullBuild.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +0 -114
- package/dist/esm/node/plugin/plugins/buildApp.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/buildApp.js +0 -74
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.d.ts +0 -20
- package/dist/esm/node/plugin/plugins/buildEntry/index.d.ts +0 -8
- package/dist/esm/node/plugin/plugins/distFileNames.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/packageJsonFile.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.js +0 -15
- package/dist/esm/node/plugin/plugins/suppressRollupWarning.d.ts +0 -3
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.d.ts +0 -2
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.js +0 -17
- package/dist/esm/node/plugin/shared/viteIsSSR.d.ts +0 -11
- package/dist/esm/node/plugin/shared/viteIsSSR.js +0 -29
- package/dist-cjs-fixup.mjs +0 -41
|
@@ -1,37 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
@@ -50,13 +17,13 @@ const utils_js_1 = require("./utils.js");
|
|
|
50
17
|
*/
|
|
51
18
|
async function build(options = {}) {
|
|
52
19
|
const { viteConfigEnhanced, vikeConfig } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options.viteConfig, 'build');
|
|
53
|
-
// Pass it to
|
|
20
|
+
// Pass it to pluginAutoFullBuild()
|
|
54
21
|
if (viteConfigEnhanced)
|
|
55
22
|
viteConfigEnhanced._viteConfigEnhanced = viteConfigEnhanced;
|
|
56
|
-
if (vikeConfig.global.config.
|
|
23
|
+
if (vikeConfig.global.config.vite6BuilderApp) {
|
|
57
24
|
(0, utils_js_1.assertVersion)('Vite', vite_1.version, '6.0.0');
|
|
58
|
-
const
|
|
59
|
-
|
|
25
|
+
const builder = await (0, vite_1.createBuilder)(viteConfigEnhanced);
|
|
26
|
+
// See Vite plugin vike:build:pluginBuildApp
|
|
60
27
|
await builder.buildApp();
|
|
61
28
|
}
|
|
62
29
|
else {
|
|
@@ -40,7 +40,6 @@ exports.prepareViteApiCall = prepareViteApiCall;
|
|
|
40
40
|
exports.getViteRoot = getViteRoot;
|
|
41
41
|
exports.assertViteRoot = assertViteRoot;
|
|
42
42
|
exports.normalizeViteRoot = normalizeViteRoot;
|
|
43
|
-
// TODO: enable Vike extensions to add Vite plugins
|
|
44
43
|
const vite_1 = require("vite");
|
|
45
44
|
const context_js_1 = require("./context.js");
|
|
46
45
|
const getVikeConfig_js_1 = require("../plugin/plugins/importUserCode/v1-design/getVikeConfig.js");
|
|
@@ -88,7 +87,10 @@ async function getViteRoot(operation) {
|
|
|
88
87
|
}
|
|
89
88
|
async function getInfoFromVite(viteConfigFromOptions, operation) {
|
|
90
89
|
const viteConfigFromUserViteFile = await loadViteConfigFile(viteConfigFromOptions, operation);
|
|
91
|
-
const root = normalizeViteRoot(
|
|
90
|
+
const root = normalizeViteRoot(
|
|
91
|
+
// `viteConfigFromOptions.root` before `viteConfigFromUserViteFile.root` replicates Vite's precedence:
|
|
92
|
+
// https://github.com/vitejs/vite/blob/4f5845a3182fc950eb9cd76d7161698383113b18/packages/vite/src/node/config.ts#L1001
|
|
93
|
+
viteConfigFromOptions?.root ?? viteConfigFromUserViteFile?.root ?? process.cwd());
|
|
92
94
|
globalObject.root = root;
|
|
93
95
|
let vikeVitePluginOptions;
|
|
94
96
|
let viteConfigEnhanced = viteConfigFromOptions;
|
|
@@ -154,7 +156,11 @@ function getResolveConfigArgs(viteConfig = {}, operation) {
|
|
|
154
156
|
return [inlineConfig, command, defaultMode, defaultNodeEnv, isPreview];
|
|
155
157
|
}
|
|
156
158
|
function normalizeViteRoot(root) {
|
|
157
|
-
|
|
159
|
+
// `path.resolve(viteConfigFromUserViteFile.configFile, root)` could be more intuitive than `path.resolve(process.cwd(), root)` but we replicate Vite's behavior (`vite.config.js` should follow Vite's API), see:
|
|
160
|
+
// https://github.com/vitejs/vite/blob/4f5845a3182fc950eb9cd76d7161698383113b18/packages/vite/src/node/config.ts#L1063
|
|
161
|
+
return (0, utils_js_1.toPosixPath)(
|
|
162
|
+
// Equivalent to `path.resolve(process.cwd(), root)`
|
|
163
|
+
path_1.default.resolve(root));
|
|
158
164
|
}
|
|
159
165
|
const errMsg = `A Vite plugin is modifying Vite's setting ${picocolors_1.default.cyan('root')} which is forbidden`;
|
|
160
166
|
async function assertViteRoot2(root, viteConfigEnhanced, operation) {
|
|
@@ -3,27 +3,23 @@ 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.version = void 0;
|
|
6
|
+
exports.version = exports.getVikeConfig = void 0;
|
|
7
7
|
exports.plugin = plugin;
|
|
8
8
|
exports.ssr = plugin;
|
|
9
9
|
exports.default = plugin;
|
|
10
|
+
var commonConfig_js_1 = require("./plugins/commonConfig.js");
|
|
11
|
+
Object.defineProperty(exports, "getVikeConfig", { enumerable: true, get: function () { return commonConfig_js_1.getVikeConfigPublic; } });
|
|
10
12
|
var utils_js_1 = require("./utils.js");
|
|
11
13
|
Object.defineProperty(exports, "version", { enumerable: true, get: function () { return utils_js_1.PROJECT_VERSION; } });
|
|
12
14
|
const utils_js_2 = require("./utils.js");
|
|
13
|
-
const
|
|
15
|
+
const build_js_1 = require("./plugins/build.js");
|
|
14
16
|
const previewConfig_js_1 = require("./plugins/previewConfig.js");
|
|
15
|
-
const autoFullBuild_js_1 = require("./plugins/autoFullBuild.js");
|
|
16
17
|
const index_js_1 = require("./plugins/devConfig/index.js");
|
|
17
|
-
const packageJsonFile_js_1 = require("./plugins/packageJsonFile.js");
|
|
18
|
-
const removeRequireHookPlugin_js_1 = require("./plugins/removeRequireHookPlugin.js");
|
|
19
18
|
const index_js_2 = require("./plugins/importUserCode/index.js");
|
|
20
|
-
const distFileNames_js_1 = require("./plugins/distFileNames.js");
|
|
21
19
|
const extractAssetsPlugin_js_1 = require("./plugins/extractAssetsPlugin.js");
|
|
22
20
|
const extractExportNamesPlugin_js_1 = require("./plugins/extractExportNamesPlugin.js");
|
|
23
|
-
const suppressRollupWarning_js_1 = require("./plugins/suppressRollupWarning.js");
|
|
24
21
|
const setGlobalContext_js_1 = require("./plugins/setGlobalContext.js");
|
|
25
|
-
const
|
|
26
|
-
const commonConfig_js_1 = require("./plugins/commonConfig.js");
|
|
22
|
+
const commonConfig_js_2 = require("./plugins/commonConfig.js");
|
|
27
23
|
const baseUrls_js_1 = require("./plugins/baseUrls.js");
|
|
28
24
|
const envVars_js_1 = require("./plugins/envVars.js");
|
|
29
25
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
@@ -32,27 +28,19 @@ const getPageAssets_js_1 = require("../runtime/renderPage/getPageAssets.js");
|
|
|
32
28
|
const resolveClientEntriesDev_js_1 = require("./shared/resolveClientEntriesDev.js");
|
|
33
29
|
const workaroundCssModuleHmr_js_1 = require("./plugins/workaroundCssModuleHmr.js");
|
|
34
30
|
const workaroundVite6HmrRegression_js_1 = require("./plugins/workaroundVite6HmrRegression.js");
|
|
35
|
-
const buildApp_js_1 = require("./plugins/buildApp.js");
|
|
36
31
|
// We don't call this in ./onLoad.ts to avoid a cyclic dependency with utils.ts
|
|
37
32
|
(0, getPageAssets_js_1.setResolveClientEntriesDev)(resolveClientEntriesDev_js_1.resolveClientEntriesDev);
|
|
38
33
|
// Return `PluginInterop` instead of `Plugin` to avoid type mismatch upon different Vite versions
|
|
39
34
|
function plugin(vikeVitePluginOptions = {}) {
|
|
40
35
|
const plugins = [
|
|
41
|
-
...(0,
|
|
36
|
+
...(0, commonConfig_js_2.commonConfig)(vikeVitePluginOptions),
|
|
42
37
|
(0, index_js_2.importUserCode)(),
|
|
43
38
|
...(0, index_js_1.devConfig)(),
|
|
44
|
-
...(0,
|
|
45
|
-
...(0, buildApp_js_1.buildApp)(),
|
|
39
|
+
...(0, build_js_1.build)(),
|
|
46
40
|
(0, previewConfig_js_1.previewConfig)(),
|
|
47
|
-
...(0, autoFullBuild_js_1.autoFullBuild)(),
|
|
48
|
-
(0, packageJsonFile_js_1.packageJsonFile)(),
|
|
49
|
-
(0, removeRequireHookPlugin_js_1.removeRequireHookPlugin)(),
|
|
50
|
-
(0, distFileNames_js_1.distFileNames)(),
|
|
51
41
|
...(0, extractAssetsPlugin_js_1.extractAssetsPlugin)(),
|
|
52
42
|
(0, extractExportNamesPlugin_js_1.extractExportNamesPlugin)(),
|
|
53
|
-
(0, suppressRollupWarning_js_1.suppressRollupWarning)(),
|
|
54
43
|
...(0, setGlobalContext_js_1.setGlobalContext)(),
|
|
55
|
-
...(0, index_js_3.buildEntry)(),
|
|
56
44
|
(0, baseUrls_js_1.baseUrls)(),
|
|
57
45
|
(0, envVars_js_1.envVarsPlugin)(),
|
|
58
46
|
(0, fileEnv_js_1.fileEnv)(),
|
|
@@ -69,7 +57,7 @@ Object.defineProperty(plugin, 'apply', {
|
|
|
69
57
|
(0, utils_js_2.assertUsage)(false, `Add ${picocolors_1.default.cyan('vike()')} instead of ${picocolors_1.default.cyan('vike')} to vite.config.js#plugins (i.e. call the function and add the return value instead of adding the function itself)`, { showStackTrace: true });
|
|
70
58
|
}
|
|
71
59
|
});
|
|
72
|
-
//
|
|
60
|
+
// CJS default export `const vike = require('vike/plugin')`
|
|
73
61
|
// - It needs to live at the end of this file, in order to ensure we do it after all assignments to `exports`.
|
|
74
62
|
try {
|
|
75
63
|
module.exports = Object.assign(exports.default, exports);
|
|
@@ -4,6 +4,7 @@ exports.baseUrls = baseUrls;
|
|
|
4
4
|
const resolveBase_js_1 = require("../../shared/resolveBase.js");
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
6
|
const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
|
|
7
|
+
const commonConfig_js_1 = require("./commonConfig.js");
|
|
7
8
|
function baseUrls() {
|
|
8
9
|
let basesResolved;
|
|
9
10
|
return {
|
|
@@ -13,7 +14,8 @@ function baseUrls() {
|
|
|
13
14
|
const isDev = config._isDev;
|
|
14
15
|
(0, utils_js_1.assert)(typeof isDev === 'boolean');
|
|
15
16
|
const baseViteOriginal = config.base ?? '/__UNSET__'; // '/__UNSET__' because Vite resolves `_baseViteOriginal: null` to `undefined`
|
|
16
|
-
|
|
17
|
+
const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
|
|
18
|
+
basesResolved = (0, resolveBase_js_1.resolveBase)(baseViteOriginal, vike.config.baseServer ?? null, vike.config.baseAssets ?? null);
|
|
17
19
|
// We cannot define these in configResolved() because Vite picks up the env variables before any configResolved() hook is called
|
|
18
20
|
process.env.BASE_SERVER = basesResolved.baseServer;
|
|
19
21
|
process.env.BASE_ASSETS = basesResolved.baseAssets;
|
|
@@ -3,59 +3,51 @@ 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.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
6
|
+
exports.handleAssetsManifest = handleAssetsManifest;
|
|
7
|
+
exports.handleAssetsManifest_getBuildConfig = handleAssetsManifest_getBuildConfig;
|
|
8
|
+
exports.handleAssetsManifest_isFixEnabled = handleAssetsManifest_isFixEnabled;
|
|
9
|
+
exports.handleAssetsManifest_assertUsageCssCodeSplit = handleAssetsManifest_assertUsageCssCodeSplit;
|
|
10
|
+
exports.handleAssetsManifest_assertUsageCssTarget = handleAssetsManifest_assertUsageCssTarget;
|
|
10
11
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
11
12
|
const fs_1 = __importDefault(require("fs"));
|
|
12
13
|
const path_1 = __importDefault(require("path"));
|
|
13
14
|
const fs_2 = require("fs");
|
|
14
15
|
const utils_js_1 = require("../../utils.js");
|
|
15
16
|
const virtualFilePageConfigValuesAll_js_1 = require("../../../shared/virtual-files/virtualFilePageConfigValuesAll.js");
|
|
16
|
-
const
|
|
17
|
+
const pluginBuildConfig_js_1 = require("./pluginBuildConfig.js");
|
|
17
18
|
const getAssetsDir_js_1 = require("../../shared/getAssetsDir.js");
|
|
18
19
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
19
20
|
const getVikeConfig_js_1 = require("../importUserCode/v1-design/getVikeConfig.js");
|
|
20
21
|
const getOutDirs_js_1 = require("../../shared/getOutDirs.js");
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
return true;
|
|
22
|
+
const isViteServerBuild_js_1 = require("../../shared/isViteServerBuild.js");
|
|
23
|
+
const commonConfig_js_1 = require("../commonConfig.js");
|
|
24
|
+
const pluginBuildEntry_js_1 = require("./pluginBuildEntry.js");
|
|
25
|
+
(0, utils_js_1.assertIsSingleModuleInstance)('build/handleAssetsManifest.ts');
|
|
26
|
+
let assetsJsonFilePath;
|
|
27
|
+
// true => use workaround config.build.ssrEmitAssets
|
|
28
|
+
// false => use workaround extractAssets plugin
|
|
29
|
+
function handleAssetsManifest_isFixEnabled(config) {
|
|
30
|
+
// Allow user to toggle between the two workarounds? E.g. based on https://vike.dev/includeAssetsImportedByServer.
|
|
31
|
+
return (0, getVikeConfig_js_1.isV1Design)(config);
|
|
32
32
|
}
|
|
33
33
|
/** https://github.com/vikejs/vike/issues/1339 */
|
|
34
34
|
async function fixServerAssets(config) {
|
|
35
35
|
const outDirs = (0, getOutDirs_js_1.getOutDirs)(config);
|
|
36
|
-
const clientManifest = await
|
|
37
|
-
const serverManifest = await
|
|
38
|
-
const { clientManifestMod, serverManifestMod,
|
|
39
|
-
await copyAssets(
|
|
36
|
+
const clientManifest = await readManifestFile(outDirs.outDirClient);
|
|
37
|
+
const serverManifest = await readManifestFile(outDirs.outDirServer);
|
|
38
|
+
const { clientManifestMod, serverManifestMod, filesToMove, filesToRemove } = addServerAssets(clientManifest, serverManifest);
|
|
39
|
+
await copyAssets(filesToMove, filesToRemove, config);
|
|
40
40
|
return { clientManifestMod, serverManifestMod };
|
|
41
41
|
}
|
|
42
|
-
async function
|
|
43
|
-
const manifestFilePath = path_1.default.posix.join(outDir, buildConfig_js_1.manifestTempFile);
|
|
44
|
-
const manifestFileContent = await promises_1.default.readFile(manifestFilePath, 'utf-8');
|
|
45
|
-
(0, utils_js_1.assert)(manifestFileContent);
|
|
46
|
-
const manifest = JSON.parse(manifestFileContent);
|
|
47
|
-
(0, utils_js_1.assert)(manifest);
|
|
48
|
-
return manifest;
|
|
49
|
-
}
|
|
50
|
-
async function copyAssets(filesToCopy, filesToRemove, config) {
|
|
42
|
+
async function copyAssets(filesToMove, filesToRemove, config) {
|
|
51
43
|
const { outDirClient, outDirServer } = (0, getOutDirs_js_1.getOutDirs)(config);
|
|
52
44
|
const assetsDir = (0, getAssetsDir_js_1.getAssetsDir)(config);
|
|
53
45
|
const assetsDirServer = path_1.default.posix.join(outDirServer, assetsDir);
|
|
54
|
-
if (!
|
|
46
|
+
if (!filesToMove.length && !filesToRemove.length && !(0, fs_2.existsSync)(assetsDirServer))
|
|
55
47
|
return;
|
|
56
48
|
(0, utils_js_1.assert)((0, fs_2.existsSync)(assetsDirServer));
|
|
57
49
|
const concurrencyLimit = (0, utils_js_1.pLimit)(10);
|
|
58
|
-
await Promise.all(
|
|
50
|
+
await Promise.all(filesToMove.map((file) => concurrencyLimit(async () => {
|
|
59
51
|
const source = path_1.default.posix.join(outDirServer, file);
|
|
60
52
|
const target = path_1.default.posix.join(outDirClient, file);
|
|
61
53
|
await promises_1.default.mkdir(path_1.default.posix.dirname(target), { recursive: true });
|
|
@@ -91,19 +83,20 @@ function addServerAssets(clientManifest, serverManifest) {
|
|
|
91
83
|
(0, utils_js_1.assert)(!entriesServer.has(pageId));
|
|
92
84
|
entriesServer.set(pageId, { key, ...resources });
|
|
93
85
|
}
|
|
94
|
-
let
|
|
86
|
+
let filesToMove = [];
|
|
95
87
|
let filesToRemove = [];
|
|
88
|
+
// Copy page assets
|
|
96
89
|
for (const [pageId, entryClient] of entriesClient.entries()) {
|
|
97
90
|
const entryServer = entriesServer.get(pageId);
|
|
98
91
|
if (!entryServer)
|
|
99
92
|
continue;
|
|
100
|
-
const
|
|
93
|
+
const cssToMove = [];
|
|
101
94
|
const cssToRemove = [];
|
|
102
|
-
const
|
|
95
|
+
const assetsToMove = [];
|
|
103
96
|
const assetsToRemove = [];
|
|
104
97
|
entryServer.css.forEach((cssServer) => {
|
|
105
98
|
if (!entryClient.css.some((cssClient) => cssServer.hash === cssClient.hash)) {
|
|
106
|
-
|
|
99
|
+
cssToMove.push(cssServer.src);
|
|
107
100
|
}
|
|
108
101
|
else {
|
|
109
102
|
cssToRemove.push(cssServer.src);
|
|
@@ -111,17 +104,17 @@ function addServerAssets(clientManifest, serverManifest) {
|
|
|
111
104
|
});
|
|
112
105
|
entryServer.assets.forEach((assetServer) => {
|
|
113
106
|
if (!entryClient.assets.some((assetClient) => assetServer.hash === assetClient.hash)) {
|
|
114
|
-
|
|
107
|
+
assetsToMove.push(assetServer.src);
|
|
115
108
|
}
|
|
116
109
|
else {
|
|
117
110
|
assetsToRemove.push(assetServer.src);
|
|
118
111
|
}
|
|
119
112
|
});
|
|
120
|
-
if (
|
|
113
|
+
if (cssToMove.length) {
|
|
121
114
|
const { key } = entryClient;
|
|
122
|
-
|
|
115
|
+
filesToMove.push(...cssToMove);
|
|
123
116
|
(_a = clientManifest[key]).css ?? (_a.css = []);
|
|
124
|
-
clientManifest[key].css?.push(...
|
|
117
|
+
clientManifest[key].css?.push(...cssToMove);
|
|
125
118
|
}
|
|
126
119
|
if (cssToRemove.length) {
|
|
127
120
|
const { key } = entryServer;
|
|
@@ -129,11 +122,11 @@ function addServerAssets(clientManifest, serverManifest) {
|
|
|
129
122
|
(_b = serverManifest[key]).css ?? (_b.css = []);
|
|
130
123
|
serverManifest[key].css = serverManifest[key].css.filter((entry) => !cssToRemove.includes(entry));
|
|
131
124
|
}
|
|
132
|
-
if (
|
|
125
|
+
if (assetsToMove.length) {
|
|
133
126
|
const { key } = entryClient;
|
|
134
|
-
|
|
127
|
+
filesToMove.push(...assetsToMove);
|
|
135
128
|
(_c = clientManifest[key]).assets ?? (_c.assets = []);
|
|
136
|
-
clientManifest[key].assets?.push(...
|
|
129
|
+
clientManifest[key].assets?.push(...assetsToMove);
|
|
137
130
|
}
|
|
138
131
|
if (assetsToRemove.length) {
|
|
139
132
|
const { key } = entryServer;
|
|
@@ -142,11 +135,40 @@ function addServerAssets(clientManifest, serverManifest) {
|
|
|
142
135
|
serverManifest[key].assets = serverManifest[key].assets.filter((entry) => !assetsToRemove.includes(entry));
|
|
143
136
|
}
|
|
144
137
|
}
|
|
138
|
+
// Also copy assets of virtual:@brillout/vite-plugin-server-entry:serverEntry
|
|
139
|
+
{
|
|
140
|
+
const filesClientAll = [];
|
|
141
|
+
for (const key in clientManifest) {
|
|
142
|
+
const entry = clientManifest[key];
|
|
143
|
+
filesClientAll.push(entry.file);
|
|
144
|
+
filesClientAll.push(...(entry.assets ?? []));
|
|
145
|
+
filesClientAll.push(...(entry.css ?? []));
|
|
146
|
+
}
|
|
147
|
+
for (const key in serverManifest) {
|
|
148
|
+
const entry = serverManifest[key];
|
|
149
|
+
if (!entry.isEntry)
|
|
150
|
+
continue;
|
|
151
|
+
const resources = collectResources(entry, serverManifest);
|
|
152
|
+
const css = resources.css.map((css) => css.src).filter((file) => !filesClientAll.includes(file));
|
|
153
|
+
const assets = resources.assets.map((asset) => asset.src).filter((file) => !filesClientAll.includes(file));
|
|
154
|
+
filesToMove.push(...css, ...assets);
|
|
155
|
+
if (css.length > 0 || assets.length > 0) {
|
|
156
|
+
(0, utils_js_1.assert)(!clientManifest[key]);
|
|
157
|
+
clientManifest[key] = {
|
|
158
|
+
...entry,
|
|
159
|
+
css,
|
|
160
|
+
assets,
|
|
161
|
+
dynamicImports: undefined,
|
|
162
|
+
imports: undefined
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
145
167
|
const clientManifestMod = clientManifest;
|
|
146
168
|
const serverManifestMod = serverManifest;
|
|
147
|
-
|
|
148
|
-
filesToRemove = (0, utils_js_1.unique)(filesToRemove).filter((file) => !
|
|
149
|
-
return { clientManifestMod, serverManifestMod,
|
|
169
|
+
filesToMove = (0, utils_js_1.unique)(filesToMove);
|
|
170
|
+
filesToRemove = (0, utils_js_1.unique)(filesToRemove).filter((file) => !filesToMove.includes(file));
|
|
171
|
+
return { clientManifestMod, serverManifestMod, filesToMove, filesToRemove };
|
|
150
172
|
}
|
|
151
173
|
function getPageId(key) {
|
|
152
174
|
// Normalize from:
|
|
@@ -189,22 +211,22 @@ function collectResources(entryRoot, manifest) {
|
|
|
189
211
|
// </head>
|
|
190
212
|
// ```
|
|
191
213
|
function getHash(src) {
|
|
192
|
-
// src is guarenteed to end with `.[hash][extname]`, see
|
|
214
|
+
// src is guarenteed to end with `.[hash][extname]`, see pluginDistFileNames.ts
|
|
193
215
|
const hash = src.split('.').at(-2);
|
|
194
216
|
(0, utils_js_1.assert)(hash);
|
|
195
217
|
return hash;
|
|
196
218
|
}
|
|
197
219
|
// https://github.com/vikejs/vike/issues/1993
|
|
198
|
-
function
|
|
220
|
+
function handleAssetsManifest_assertUsageCssCodeSplit(config) {
|
|
221
|
+
if (!handleAssetsManifest_isFixEnabled(config))
|
|
222
|
+
return;
|
|
199
223
|
(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 });
|
|
200
224
|
}
|
|
201
225
|
const targets = [];
|
|
202
|
-
|
|
203
|
-
if (!
|
|
204
|
-
return;
|
|
205
|
-
if (!(await (0, getVikeConfig_js_1.isV1Design)(config)))
|
|
226
|
+
function handleAssetsManifest_assertUsageCssTarget(config) {
|
|
227
|
+
if (!handleAssetsManifest_isFixEnabled(config))
|
|
206
228
|
return;
|
|
207
|
-
const isServerSide = (0,
|
|
229
|
+
const isServerSide = (0, isViteServerBuild_js_1.isViteServerBuild)(config);
|
|
208
230
|
(0, utils_js_1.assert)(typeof isServerSide === 'boolean');
|
|
209
231
|
(0, utils_js_1.assert)(config.build.target !== undefined);
|
|
210
232
|
targets.push({ global: config.build.target, css: config.build.cssTarget, isServerSide });
|
|
@@ -249,3 +271,59 @@ function removeEmptyDirectories(dirPath) {
|
|
|
249
271
|
fs_1.default.rmdirSync(dirPath);
|
|
250
272
|
}
|
|
251
273
|
}
|
|
274
|
+
async function readManifestFile(outDir) {
|
|
275
|
+
const manifestFilePath = path_1.default.posix.join(outDir, pluginBuildConfig_js_1.manifestTempFile);
|
|
276
|
+
const manifestFileContent = await promises_1.default.readFile(manifestFilePath, 'utf-8');
|
|
277
|
+
(0, utils_js_1.assert)(manifestFileContent);
|
|
278
|
+
const manifest = JSON.parse(manifestFileContent);
|
|
279
|
+
(0, utils_js_1.assert)(manifest);
|
|
280
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(manifest));
|
|
281
|
+
return manifest;
|
|
282
|
+
}
|
|
283
|
+
async function writeManifestFile(manifest, manifestFilePath) {
|
|
284
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(manifest));
|
|
285
|
+
const manifestFileContent = JSON.stringify(manifest, null, 2);
|
|
286
|
+
await promises_1.default.writeFile(manifestFilePath, manifestFileContent, 'utf-8');
|
|
287
|
+
}
|
|
288
|
+
function handleAssetsManifest_getBuildConfig(config) {
|
|
289
|
+
const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
|
|
290
|
+
const isFixEnabled = handleAssetsManifest_isFixEnabled(config);
|
|
291
|
+
return {
|
|
292
|
+
// https://github.com/vikejs/vike/issues/1339
|
|
293
|
+
ssrEmitAssets: isFixEnabled ? true : undefined,
|
|
294
|
+
// Required if `ssrEmitAssets: true`, see https://github.com/vitejs/vite/pull/11430#issuecomment-1454800934
|
|
295
|
+
cssMinify: isFixEnabled ? 'esbuild' : undefined,
|
|
296
|
+
manifest: pluginBuildConfig_js_1.manifestTempFile,
|
|
297
|
+
copyPublicDir: vike.config.vite6BuilderApp
|
|
298
|
+
? // Already set by vike:build:pluginBuildApp
|
|
299
|
+
undefined
|
|
300
|
+
: !(0, isViteServerBuild_js_1.isViteServerBuild)(config)
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
async function handleAssetsManifest(config, viteEnv, options, bundle) {
|
|
304
|
+
if ((0, isViteServerBuild_js_1.isViteServerBuild_onlySsrEnv)(config, viteEnv)) {
|
|
305
|
+
(0, utils_js_1.assert)(!assetsJsonFilePath);
|
|
306
|
+
const outDirs = (0, getOutDirs_js_1.getOutDirs)(config, viteEnv);
|
|
307
|
+
assetsJsonFilePath = path_1.default.posix.join(outDirs.outDirRoot, 'assets.json');
|
|
308
|
+
await writeAssetsManifestFile(outDirs, assetsJsonFilePath, config);
|
|
309
|
+
}
|
|
310
|
+
if ((0, isViteServerBuild_js_1.isViteServerBuild)(config, viteEnv)) {
|
|
311
|
+
(0, utils_js_1.assert)(assetsJsonFilePath);
|
|
312
|
+
// Replace __VITE_ASSETS_MANIFEST__ in all server-side bundles
|
|
313
|
+
await (0, pluginBuildEntry_js_1.set_macro_ASSETS_MANIFEST)(options, bundle, assetsJsonFilePath);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
async function writeAssetsManifestFile(outDirs, assetsJsonFilePath, config) {
|
|
317
|
+
const isFixEnabled = handleAssetsManifest_isFixEnabled(config);
|
|
318
|
+
const clientManifestFilePath = path_1.default.posix.join(outDirs.outDirClient, pluginBuildConfig_js_1.manifestTempFile);
|
|
319
|
+
const serverManifestFilePath = path_1.default.posix.join(outDirs.outDirServer, pluginBuildConfig_js_1.manifestTempFile);
|
|
320
|
+
if (!isFixEnabled) {
|
|
321
|
+
await promises_1.default.copyFile(clientManifestFilePath, assetsJsonFilePath);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
const { clientManifestMod } = await fixServerAssets(config);
|
|
325
|
+
await writeManifestFile(clientManifestMod, assetsJsonFilePath);
|
|
326
|
+
}
|
|
327
|
+
await promises_1.default.rm(clientManifestFilePath);
|
|
328
|
+
await promises_1.default.rm(serverManifestFilePath);
|
|
329
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
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.pluginAutoFullBuild = pluginAutoFullBuild;
|
|
7
|
+
exports.isPrerenderForceExit = isPrerenderForceExit;
|
|
8
|
+
const vite_1 = require("vite");
|
|
9
|
+
const utils_js_1 = require("../../utils.js");
|
|
10
|
+
const runPrerender_js_1 = require("../../../prerender/runPrerender.js");
|
|
11
|
+
const context_js_1 = require("../../../prerender/context.js");
|
|
12
|
+
const isViteCliCall_js_1 = require("../../shared/isViteCliCall.js");
|
|
13
|
+
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
14
|
+
const logErrorHint_js_1 = require("../../../runtime/renderPage/logErrorHint.js");
|
|
15
|
+
const pluginBuildConfig_js_1 = require("./pluginBuildConfig.js");
|
|
16
|
+
const getVikeConfig_js_1 = require("../importUserCode/v1-design/getVikeConfig.js");
|
|
17
|
+
const context_js_2 = require("../../../api/context.js");
|
|
18
|
+
const handleAssetsManifest_js_1 = require("./handleAssetsManifest.js");
|
|
19
|
+
const isViteServerBuild_js_1 = require("../../shared/isViteServerBuild.js");
|
|
20
|
+
(0, utils_js_1.assertIsSingleModuleInstance)('build/pluginAutoFullBuild.ts');
|
|
21
|
+
let forceExit = false;
|
|
22
|
+
function pluginAutoFullBuild() {
|
|
23
|
+
let config;
|
|
24
|
+
let vikeConfig;
|
|
25
|
+
return [
|
|
26
|
+
{
|
|
27
|
+
name: 'vike:build:pluginAutoFullBuild',
|
|
28
|
+
apply: 'build',
|
|
29
|
+
enforce: 'pre',
|
|
30
|
+
async configResolved(config_) {
|
|
31
|
+
vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config_);
|
|
32
|
+
config = config_;
|
|
33
|
+
abortViteBuildSsr(vikeConfig);
|
|
34
|
+
},
|
|
35
|
+
writeBundle: {
|
|
36
|
+
/* We can't use this because it breaks Vite's logging. TODO/eventually: try again with latest Vite version.
|
|
37
|
+
sequential: true,
|
|
38
|
+
order: 'pre',
|
|
39
|
+
*/
|
|
40
|
+
async handler(options, bundle) {
|
|
41
|
+
await (0, handleAssetsManifest_js_1.handleAssetsManifest)(config, this.environment, options, bundle);
|
|
42
|
+
await triggerFullBuild(config, vikeConfig, this.environment, bundle);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'vike:build:pluginAutoFullBuild:forceExit',
|
|
48
|
+
apply: 'build',
|
|
49
|
+
enforce: 'post',
|
|
50
|
+
closeBundle: {
|
|
51
|
+
sequential: true,
|
|
52
|
+
order: 'post',
|
|
53
|
+
handler() {
|
|
54
|
+
(0, utils_js_1.onSetupBuild)();
|
|
55
|
+
(0, handleAssetsManifest_js_1.handleAssetsManifest_assertUsageCssTarget)(config);
|
|
56
|
+
if (forceExit &&
|
|
57
|
+
// Let vike:build:pluginBuildApp force exit
|
|
58
|
+
!vikeConfig.global.config.vite6BuilderApp) {
|
|
59
|
+
(0, runPrerender_js_1.runPrerender_forceExit)();
|
|
60
|
+
(0, utils_js_1.assert)(false);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
];
|
|
66
|
+
}
|
|
67
|
+
async function triggerFullBuild(config, vikeConfig, viteEnv, bundle) {
|
|
68
|
+
// Whether builder.buildApp() is being used, see plugin:build:pluginBuildApp
|
|
69
|
+
const isBuilderApp = vikeConfig.global.config.vite6BuilderApp;
|
|
70
|
+
// If builder.buildApp() => trigger at end of `this.environment.name === 'ssr'`.
|
|
71
|
+
// Else => trigger at end of client-side build.
|
|
72
|
+
if (isBuilderApp ? !(0, isViteServerBuild_js_1.isViteServerBuild_onlySsrEnv)(config, viteEnv) : !(0, isViteServerBuild_js_1.isViteClientBuild)(config, viteEnv))
|
|
73
|
+
return;
|
|
74
|
+
if (isEntirelyDisabled(vikeConfig))
|
|
75
|
+
return;
|
|
76
|
+
// Workaround for @vitejs/plugin-legacy
|
|
77
|
+
// - The legacy plugin triggers its own Rollup build for the client-side.
|
|
78
|
+
// - The legacy plugin doesn't generate a manifest => we can use that to detect the legacy plugin build.
|
|
79
|
+
// - Issue & reproduction: https://github.com/vikejs/vike/issues/1154#issuecomment-1965954636
|
|
80
|
+
if (!bundle[pluginBuildConfig_js_1.manifestTempFile])
|
|
81
|
+
return;
|
|
82
|
+
const configInline = getFullBuildInlineConfig(config);
|
|
83
|
+
if (!isBuilderApp) {
|
|
84
|
+
try {
|
|
85
|
+
await (0, vite_1.build)(setSSR(configInline));
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
// Avoid Rollup prefixing the error with [vike:build:pluginAutoFullBuild], see for example https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
|
|
89
|
+
console.error(err);
|
|
90
|
+
(0, logErrorHint_js_1.logErrorHint)(err);
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
// The server bulid is already called by builder.buildApp()
|
|
96
|
+
}
|
|
97
|
+
if ((0, context_js_1.isPrerenderAutoRunEnabled)(vikeConfig)) {
|
|
98
|
+
const res = await (0, runPrerender_js_1.runPrerenderFromAutoRun)(configInline, config);
|
|
99
|
+
forceExit = res.forceExit;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function setSSR(configInline) {
|
|
103
|
+
return {
|
|
104
|
+
...configInline,
|
|
105
|
+
build: {
|
|
106
|
+
...configInline.build,
|
|
107
|
+
ssr: true
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function abortViteBuildSsr(vikeConfig) {
|
|
112
|
+
if (vikeConfig.global.config.disableAutoFullBuild !== true && (0, isViteCliCall_js_1.isViteCliCall)() && (0, isViteCliCall_js_1.getViteConfigFromCli)()?.build.ssr) {
|
|
113
|
+
(0, utils_js_1.assertWarning)(false, `The CLI call ${picocolors_1.default.cyan('$ vite build --ssr')} is superfluous since ${picocolors_1.default.cyan('$ vite build')} also builds the server-side. If you want two separate build steps then use https://vike.dev/disableAutoFullBuild or use Vite's ${picocolors_1.default.cyan('build()')} API.`, { onlyOnce: true });
|
|
114
|
+
process.exit(0);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function isEntirelyDisabled(vikeConfig) {
|
|
118
|
+
const { disableAutoFullBuild } = vikeConfig.global.config;
|
|
119
|
+
if (disableAutoFullBuild === undefined || disableAutoFullBuild === 'prerender') {
|
|
120
|
+
const isUserUsingViteApi = !(0, isViteCliCall_js_1.isViteCliCall)() && !(0, context_js_2.isVikeCliOrApi)();
|
|
121
|
+
return isUserUsingViteApi;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
return disableAutoFullBuild;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function isPrerenderForceExit() {
|
|
128
|
+
return forceExit;
|
|
129
|
+
}
|
|
130
|
+
function getFullBuildInlineConfig(config) {
|
|
131
|
+
const configFromCli = !(0, isViteCliCall_js_1.isViteCliCall)() ? null : (0, isViteCliCall_js_1.getViteConfigFromCli)();
|
|
132
|
+
if (config._viteConfigEnhanced) {
|
|
133
|
+
return config._viteConfigEnhanced;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
return {
|
|
137
|
+
...configFromCli,
|
|
138
|
+
configFile: configFromCli?.configFile || config.configFile,
|
|
139
|
+
root: config.root,
|
|
140
|
+
build: {
|
|
141
|
+
...configFromCli?.build
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pluginBuildApp = pluginBuildApp;
|
|
4
|
+
const runPrerender_js_1 = require("../../../prerender/runPrerender.js");
|
|
5
|
+
const getOutDirs_js_1 = require("../../shared/getOutDirs.js");
|
|
6
|
+
const utils_js_1 = require("../../utils.js");
|
|
7
|
+
const commonConfig_js_1 = require("../commonConfig.js");
|
|
8
|
+
const pluginAutoFullBuild_js_1 = require("./pluginAutoFullBuild.js");
|
|
9
|
+
function pluginBuildApp() {
|
|
10
|
+
return [
|
|
11
|
+
{
|
|
12
|
+
name: 'vike:build:pluginBuildApp',
|
|
13
|
+
apply: 'build',
|
|
14
|
+
config(config) {
|
|
15
|
+
const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
|
|
16
|
+
if (!vike.config.vite6BuilderApp)
|
|
17
|
+
return;
|
|
18
|
+
return {
|
|
19
|
+
builder: {
|
|
20
|
+
// Can be overriden by another plugin e.g vike-vercel https://github.com/vikejs/vike/pull/2184#issuecomment-2659425195
|
|
21
|
+
async buildApp(builder) {
|
|
22
|
+
(0, utils_js_1.assert)(builder.environments.client);
|
|
23
|
+
(0, utils_js_1.assert)(builder.environments.ssr);
|
|
24
|
+
await builder.build(builder.environments.client);
|
|
25
|
+
await builder.build(builder.environments.ssr);
|
|
26
|
+
if ((0, pluginAutoFullBuild_js_1.isPrerenderForceExit)()) {
|
|
27
|
+
(0, runPrerender_js_1.runPrerender_forceExit)();
|
|
28
|
+
(0, utils_js_1.assert)(false);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
environments: {
|
|
33
|
+
ssr: {
|
|
34
|
+
consumer: 'server',
|
|
35
|
+
build: {
|
|
36
|
+
outDir: (0, getOutDirs_js_1.resolveOutDir)(config, true),
|
|
37
|
+
ssr: true
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
client: {
|
|
41
|
+
consumer: 'client',
|
|
42
|
+
build: {
|
|
43
|
+
copyPublicDir: true,
|
|
44
|
+
ssr: false
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
];
|
|
52
|
+
}
|