vike 0.4.153 → 0.4.154

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.
Files changed (67) hide show
  1. package/dist/cjs/node/cli/bin.js +2 -2
  2. package/dist/cjs/node/plugin/index.js +2 -2
  3. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +17 -9
  4. package/dist/cjs/node/plugin/plugins/envVars.js +1 -1
  5. package/dist/cjs/node/plugin/plugins/{assertFileEnv.js → fileEnv.js} +4 -4
  6. package/dist/cjs/node/plugin/plugins/importBuild/index.js +10 -5
  7. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +3 -1
  8. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +1 -9
  9. package/dist/cjs/node/plugin/shared/loggerNotProd/log.js +2 -1
  10. package/dist/cjs/node/plugin/shared/loggerNotProd.js +5 -5
  11. package/dist/cjs/node/plugin/shared/loggerVite.js +3 -0
  12. package/dist/cjs/node/plugin/utils.js +1 -0
  13. package/dist/cjs/node/prerender/index.js +1 -1
  14. package/dist/cjs/node/prerender/runPrerender.js +27 -11
  15. package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +0 -4
  16. package/dist/cjs/node/runtime/renderPage/logHintForCjsEsmError/errors.js +20 -0
  17. package/dist/cjs/node/runtime/renderPage/logHintForCjsEsmError.js +326 -0
  18. package/dist/cjs/node/runtime/renderPage/loggerProd.js +9 -1
  19. package/dist/cjs/node/runtime/utils.js +2 -1
  20. package/dist/cjs/shared/hooks/getHook.js +14 -8
  21. package/dist/cjs/shared/route/loadPageRoutes.js +1 -9
  22. package/dist/cjs/utils/formatHintLog.js +17 -0
  23. package/dist/cjs/utils/getGlobalObject.js +5 -3
  24. package/dist/cjs/utils/projectInfo.js +1 -1
  25. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +2 -2
  26. package/dist/esm/node/cli/bin.js +3 -3
  27. package/dist/esm/node/plugin/index.js +2 -2
  28. package/dist/esm/node/plugin/plugins/autoFullBuild.js +18 -10
  29. package/dist/esm/node/plugin/plugins/envVars.js +1 -1
  30. package/dist/esm/node/plugin/plugins/fileEnv.d.ts +3 -0
  31. package/dist/esm/node/plugin/plugins/{assertFileEnv.js → fileEnv.js} +3 -3
  32. package/dist/esm/node/plugin/plugins/importBuild/index.js +10 -5
  33. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +4 -2
  34. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +1 -9
  35. package/dist/esm/node/plugin/shared/loggerNotProd/log.d.ts +2 -0
  36. package/dist/esm/node/plugin/shared/loggerNotProd/log.js +1 -0
  37. package/dist/esm/node/plugin/shared/loggerNotProd.js +7 -7
  38. package/dist/esm/node/plugin/shared/loggerVite.js +3 -0
  39. package/dist/esm/node/plugin/utils.d.ts +1 -0
  40. package/dist/esm/node/plugin/utils.js +1 -0
  41. package/dist/esm/node/prerender/index.d.ts +1 -1
  42. package/dist/esm/node/prerender/index.js +1 -1
  43. package/dist/esm/node/prerender/runPrerender.d.ts +8 -8
  44. package/dist/esm/node/prerender/runPrerender.js +27 -11
  45. package/dist/esm/node/runtime/globalContext/loadImportBuild.js +1 -5
  46. package/dist/esm/node/runtime/renderPage/logHintForCjsEsmError/errors.d.ts +1 -0
  47. package/dist/esm/node/runtime/renderPage/logHintForCjsEsmError/errors.js +17 -0
  48. package/dist/esm/node/runtime/renderPage/logHintForCjsEsmError.d.ts +13 -0
  49. package/dist/esm/node/runtime/renderPage/logHintForCjsEsmError.js +321 -0
  50. package/dist/esm/node/runtime/renderPage/loggerProd.d.ts +2 -0
  51. package/dist/esm/node/runtime/renderPage/loggerProd.js +8 -0
  52. package/dist/esm/node/runtime/utils.d.ts +2 -1
  53. package/dist/esm/node/runtime/utils.js +2 -1
  54. package/dist/esm/shared/hooks/getHook.d.ts +2 -0
  55. package/dist/esm/shared/hooks/getHook.js +13 -7
  56. package/dist/esm/shared/route/loadPageRoutes.js +1 -9
  57. package/dist/esm/utils/formatHintLog.d.ts +2 -0
  58. package/dist/esm/utils/formatHintLog.js +14 -0
  59. package/dist/esm/utils/getGlobalObject.d.ts +0 -3
  60. package/dist/esm/utils/getGlobalObject.js +5 -3
  61. package/dist/esm/utils/projectInfo.d.ts +2 -2
  62. package/dist/esm/utils/projectInfo.js +1 -1
  63. package/package.json +2 -2
  64. package/dist/cjs/utils/autoRetry.js +0 -23
  65. package/dist/esm/node/plugin/plugins/assertFileEnv.d.ts +0 -3
  66. package/dist/esm/utils/autoRetry.d.ts +0 -2
  67. package/dist/esm/utils/autoRetry.js +0 -20
@@ -12,8 +12,8 @@ cli
12
12
  assertOptions();
13
13
  const { partial, noExtraDir, base, parallel, outDir, configFile } = options;
14
14
  const root = options.root && (0, path_1.resolve)(options.root);
15
- await (0, runPrerender_js_1.prerenderFromCLI)({ partial, noExtraDir, base, root, parallel, outDir, configFile });
16
- (0, runPrerender_js_1.prerenderForceExit)();
15
+ await (0, runPrerender_js_1.runPrerenderFromCLI)({ partial, noExtraDir, base, root, parallel, outDir, configFile });
16
+ (0, runPrerender_js_1.runPrerender_forceExit)();
17
17
  });
18
18
  function assertOptions() {
19
19
  // Using process.argv because cac convert names to camelCase
@@ -27,7 +27,7 @@ const extensionsAssets_js_1 = require("./plugins/extensionsAssets.js");
27
27
  const baseUrls_js_1 = require("./plugins/baseUrls.js");
28
28
  const envVars_js_1 = require("./plugins/envVars.js");
29
29
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
30
- const assertFileEnv_js_1 = require("./plugins/assertFileEnv.js");
30
+ const fileEnv_js_1 = require("./plugins/fileEnv.js");
31
31
  (0, utils_js_2.markEnvAsVite)();
32
32
  // Return as `any` to avoid Plugin type mismatches when there are multiple Vite versions installed
33
33
  function plugin(vikeConfig) {
@@ -50,7 +50,7 @@ function plugin(vikeConfig) {
50
50
  (0, extensionsAssets_js_1.extensionsAssets)(),
51
51
  (0, baseUrls_js_1.baseUrls)(vikeConfig),
52
52
  (0, envVars_js_1.envVarsPlugin)(),
53
- (0, assertFileEnv_js_1.assertFileEnv)()
53
+ (0, fileEnv_js_1.fileEnv)()
54
54
  ];
55
55
  return plugins;
56
56
  }
@@ -10,6 +10,7 @@ const runPrerender_js_1 = require("../../prerender/runPrerender.js");
10
10
  const getConfigVike_js_1 = require("../../shared/getConfigVike.js");
11
11
  const isViteCliCall_js_1 = require("../shared/isViteCliCall.js");
12
12
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
13
+ const logHintForCjsEsmError_js_1 = require("../../runtime/renderPage/logHintForCjsEsmError.js");
13
14
  let forceExit = false;
14
15
  function autoFullBuild() {
15
16
  let config;
@@ -50,7 +51,7 @@ function autoFullBuild() {
50
51
  order: 'post',
51
52
  handler() {
52
53
  if (forceExit) {
53
- (0, runPrerender_js_1.prerenderForceExit)();
54
+ (0, runPrerender_js_1.runPrerender_forceExit)();
54
55
  }
55
56
  }
56
57
  }
@@ -76,15 +77,22 @@ async function triggerFullBuild(config, configVike, bundle) {
76
77
  ...configFromCli?.build
77
78
  }
78
79
  };
79
- await (0, vite_1.build)({
80
- ...configInline,
81
- build: {
82
- ...configInline.build,
83
- ssr: true
84
- }
85
- });
80
+ try {
81
+ await (0, vite_1.build)({
82
+ ...configInline,
83
+ build: {
84
+ ...configInline.build,
85
+ ssr: true
86
+ }
87
+ });
88
+ }
89
+ catch (err) {
90
+ console.error(err);
91
+ (0, logHintForCjsEsmError_js_1.logHintForCjsEsmError)(err);
92
+ process.exit(1);
93
+ }
86
94
  if (configVike.prerender && !configVike.prerender.disableAutoRun) {
87
- await (0, runPrerender_js_1.prerenderFromAutoFullBuild)({ viteConfig: configInline });
95
+ await (0, runPrerender_js_1.runPrerenderFromAutoFullBuild)({ viteConfig: configInline });
88
96
  forceExit = true;
89
97
  }
90
98
  }
@@ -7,7 +7,7 @@ function envVarsPlugin() {
7
7
  let envsAll;
8
8
  let config;
9
9
  return {
10
- name: 'vike:env',
10
+ name: 'vike:envVars',
11
11
  enforce: 'post',
12
12
  configResolved(config_) {
13
13
  config = config_;
@@ -3,16 +3,16 @@ 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.assertFileEnv = void 0;
6
+ exports.fileEnv = void 0;
7
7
  const utils_js_1 = require("../utils.js");
8
8
  const extractAssetsPlugin_js_1 = require("./extractAssetsPlugin.js");
9
9
  const extractExportNamesPlugin_js_1 = require("./extractExportNamesPlugin.js");
10
10
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
11
- function assertFileEnv() {
11
+ function fileEnv() {
12
12
  let config;
13
13
  let isDev = false;
14
14
  return {
15
- name: 'vike:assertFileEnv',
15
+ name: 'vike:fileEnv',
16
16
  // - We need to set `enforce: 'pre'` because, otherwise, the resolvedId() hook of Vite's internal plugin `vite:resolve` is called before and it doesn't seem to call `this.resolve()` which means that the resolveId() hook below is never called.
17
17
  // - Vite's `vite:resolve` plugin: https://github.com/vitejs/vite/blob/d649daba7682791178b711d9a3e44a6b5d00990c/packages/vite/src/node/plugins/resolve.ts#L105
18
18
  // - It's actually a good thing if the resolveId() hook below is the first one to be called because it doesn't actually resolve any ID, so all other resolveId() hooks will be called as normal. And with `this.resolve()` we get the information we want from all other resolvedId() hooks.
@@ -104,4 +104,4 @@ function assertFileEnv() {
104
104
  }
105
105
  };
106
106
  }
107
- exports.assertFileEnv = assertFileEnv;
107
+ exports.fileEnv = fileEnv;
@@ -48,13 +48,18 @@ function getEntryCode(config, configVike) {
48
48
  const importerCode = [
49
49
  ` import { setImportBuildGetters } from '${importPath}';`,
50
50
  ` import * as pageFiles from '${virtualFileImportUserCode_js_1.virtualFileIdImportUserCodeServer}';`,
51
- ' setImportBuildGetters({',
52
- ` pageFiles: () => pageFiles,`,
51
+ ` {`,
52
+ // We first set the values to a variable because of a Rollup bug, and this workaround doesn't work: https://github.com/vikejs/vike/commit/d5f3a4f7aae5a8bc44192e6cbb2bcb9007be188d
53
+ ` const clientManifest = ${ASSETS_MAP};`,
54
+ ` const pluginManifest = ${JSON.stringify(vikeManifest, null, 2)};`,
55
+ ' setImportBuildGetters({',
56
+ ` pageFiles: () => pageFiles,`,
53
57
  // TODO: rename clientManifest -> assetManifest
54
- ` clientManifest: () => { return ${ASSETS_MAP} },`,
58
+ ` clientManifest: () => clientManifest,`,
55
59
  // TODO: rename pluginManifest -> vikeManifest
56
- ` pluginManifest: () => (${JSON.stringify(vikeManifest, null, 2)}),`,
57
- ' });',
60
+ ` pluginManifest: () => pluginManifest,`,
61
+ ' });',
62
+ ` }`,
58
63
  ''
59
64
  ].join('\n');
60
65
  return importerCode;
@@ -9,6 +9,7 @@ const path_1 = __importDefault(require("path"));
9
9
  const fast_glob_1 = __importDefault(require("fast-glob"));
10
10
  const child_process_1 = require("child_process");
11
11
  const util_1 = require("util");
12
+ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
12
13
  const execA = (0, util_1.promisify)(child_process_1.exec);
13
14
  const globalObject = (0, utils_js_1.getGlobalObject)('crawlPlusFiles.ts', {
14
15
  gitIsMissing: false
@@ -38,7 +39,8 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev) {
38
39
  const timeSpent = timeAfter - timeBefore;
39
40
  if (isDev) {
40
41
  // We only warn in dev, because while building it's expected to take a long time as crawling is competing for resources with other tasks.
41
- (0, utils_js_1.assertWarning)(timeSpent < 2 * 1000, `Crawling your user files took an unexpected long time (${timeSpent}ms). Create a new issue on Vike's GitHub.`, {
42
+ // Although, in dev, it's also competing for resources e.g. with Vite's `optimizeDeps`.
43
+ (0, utils_js_1.assertWarning)(timeSpent < 3 * 1000, `Crawling your ${picocolors_1.default.cyan('+')} files took an unexpected long time (${(0, utils_js_1.humanizeTime)(timeSpent)}). If you repeatedly get this warning, then consider creating a new issue on Vike's GitHub.`, {
42
44
  onlyOnce: 'slow-page-files-search'
43
45
  });
44
46
  }
@@ -834,7 +834,7 @@ function getConfigName(filePath) {
834
834
  if ((0, transpileAndExecuteFile_js_1.isTmpFile)(filePath))
835
835
  return null;
836
836
  const fileName = path_1.default.posix.basename(filePath);
837
- assertNoUnexpectedPlusSign(filePath, fileName);
837
+ // assertNoUnexpectedPlusSign(filePath, fileName)
838
838
  const basename = fileName.split('.')[0];
839
839
  if (!basename.startsWith('+')) {
840
840
  return null;
@@ -844,14 +844,6 @@ function getConfigName(filePath) {
844
844
  return configName;
845
845
  }
846
846
  }
847
- function assertNoUnexpectedPlusSign(filePath, fileName) {
848
- const dirs = path_1.default.posix.dirname(filePath).split('/');
849
- dirs.forEach((dir, i) => {
850
- const dirPath = dirs.slice(0, i + 1).join('/');
851
- (0, utils_js_1.assertUsage)(!dir.includes('+'), `Character '+' is a reserved character: remove '+' from the directory name ${dirPath}/`);
852
- });
853
- (0, utils_js_1.assertUsage)(!fileName.slice(1).includes('+'), `Character '+' is only allowed at the beginning of filenames: make sure ${filePath} doesn't contain any '+' in its filename other than its first letter`);
854
- }
855
847
  async function loadConfigFile(configFilePath, userRootDir, visited) {
856
848
  const { filePathAbsoluteFilesystem } = configFilePath;
857
849
  assertNoInfiniteLoop(visited, filePathAbsoluteFilesystem);
@@ -3,7 +3,7 @@ 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.screenHasErrors = exports.clearScreen = exports.isFirstLog = exports.logDirectly = exports.logWithVikeTag = exports.logWithViteTag = void 0;
6
+ exports.applyViteSourceMapToStackTrace = exports.screenHasErrors = exports.clearScreen = exports.isFirstLog = exports.logDirectly = exports.logWithVikeTag = exports.logWithViteTag = void 0;
7
7
  const utils_js_1 = require("../../utils.js");
8
8
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
9
9
  const isErrorDebug_js_1 = require("../isErrorDebug.js");
@@ -78,6 +78,7 @@ function applyViteSourceMapToStackTrace(thing) {
78
78
  // Apply Vite's source maps
79
79
  viteDevServer.ssrFixStacktrace(thing);
80
80
  }
81
+ exports.applyViteSourceMapToStackTrace = applyViteSourceMapToStackTrace;
81
82
  function prependTags(msg, projectTag, category, logType) {
82
83
  const color = (s) => {
83
84
  if (logType === 'error' && !hasRed(msg))
@@ -22,6 +22,7 @@ const log_js_1 = require("./loggerNotProd/log.js");
22
22
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
23
23
  const isNewError_js_1 = require("../../runtime/renderPage/isNewError.js");
24
24
  const isConfigInvalid_js_1 = require("../../runtime/renderPage/isConfigInvalid.js");
25
+ const loggerProd_js_1 = require("../../runtime/renderPage/loggerProd.js");
25
26
  (0, utils_js_1.assertIsNotProductionRuntime)();
26
27
  (0, loggerRuntime_js_1.overwriteRuntimeProductionLogger)(logRuntimeError, logRuntimeInfo);
27
28
  (0, utils_js_1.overwriteAssertProductionLogger)(assertLogger);
@@ -105,6 +106,7 @@ function logErr(err, httpRequestId = null) {
105
106
  logFallbackErrIntro(category);
106
107
  }
107
108
  (0, log_js_1.logDirectly)(err, 'error');
109
+ (0, loggerProd_js_1.onRuntimeError)(err);
108
110
  }
109
111
  function logConfigError(err) {
110
112
  clearLogs({ clearAlsoIfConfigIsInvalid: true });
@@ -158,6 +160,8 @@ function handleAssertMsg(err, category) {
158
160
  return true;
159
161
  }
160
162
  function assertLogger(thing, logType) {
163
+ // vite.ssrFixStacktrace() is needed for `assertWarning(..., { showStackTrace: true })`
164
+ (0, log_js_1.applyViteSourceMapToStackTrace)(thing);
161
165
  const category = getCategory();
162
166
  const res = (0, utils_js_1.getAssertErrMsg)(thing);
163
167
  /* Risk of infinite loop
@@ -198,11 +202,7 @@ function logErrorDebugNote() {
198
202
  return;
199
203
  store.errorDebugNoteAlreadyShown = true;
200
204
  }
201
- const msg = picocolors_1.default.dim([
202
- '┌──────────────────────────────────────────────────────────┐',
203
- "│ Error isn't helpful? See https://vike.dev/errors#verbose │",
204
- '└──────────────────────────────────────────────────────────┘'
205
- ].join('\n'));
205
+ const msg = picocolors_1.default.dim((0, utils_js_1.formatHintLog)("Error isn't helpful? See https://vike.dev/errors#verbose"));
206
206
  (0, log_js_1.logDirectly)(msg, 'error');
207
207
  }
208
208
  exports.logErrorDebugNote = logErrorDebugNote;
@@ -7,6 +7,7 @@ const errorWithCodeSnippet_js_1 = require("./loggerNotProd/errorWithCodeSnippet.
7
7
  const getHttpRequestAsyncStore_js_1 = require("./getHttpRequestAsyncStore.js");
8
8
  const removeSuperfluousViteLog_js_1 = require("./loggerVite/removeSuperfluousViteLog.js");
9
9
  const isErrorDebug_js_1 = require("./isErrorDebug.js");
10
+ const loggerProd_js_1 = require("../../runtime/renderPage/loggerProd.js");
10
11
  function improveViteLogs(config) {
11
12
  intercept('info', config);
12
13
  intercept('warn', config);
@@ -48,6 +49,8 @@ function intercept(logType, config) {
48
49
  // Vite's default logger preprends the "[vite]" tag if and only if options.timestamp is true
49
50
  const prependViteTag = options.timestamp || !!store?.httpRequestId;
50
51
  (0, loggerNotProd_js_1.logViteAny)(msg, logType, store?.httpRequestId ?? null, prependViteTag);
52
+ if (options.error)
53
+ (0, loggerProd_js_1.onRuntimeError)(options.error);
51
54
  };
52
55
  }
53
56
  function cleanFirstViteLog(msg) {
@@ -41,3 +41,4 @@ __exportStar(require("../../utils/mergeCumulativeValues.js"), exports);
41
41
  __exportStar(require("../../utils/deepEqual.js"), exports);
42
42
  __exportStar(require("../../utils/assertKeys.js"), exports);
43
43
  __exportStar(require("../../utils/injectRollupInputs.js"), exports);
44
+ __exportStar(require("../../utils/humanizeTime.js"), exports);
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prerender = void 0;
4
4
  var runPrerender_js_1 = require("./runPrerender.js");
5
- Object.defineProperty(exports, "prerender", { enumerable: true, get: function () { return runPrerender_js_1.prerenderFromAPI; } });
5
+ Object.defineProperty(exports, "prerender", { enumerable: true, get: function () { return runPrerender_js_1.runPrerenderFromAPI; } });
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.prerenderForceExit = exports.prerenderFromAutoFullBuild = exports.prerenderFromCLI = exports.prerenderFromAPI = void 0;
29
+ exports.runPrerender_forceExit = exports.runPrerenderFromAutoFullBuild = exports.runPrerenderFromCLI = exports.runPrerenderFromAPI = void 0;
30
30
  require("../runtime/page-files/setup.js");
31
31
  const path_1 = __importDefault(require("path"));
32
32
  const index_js_1 = require("../../shared/route/index.js");
@@ -51,20 +51,36 @@ const loadUserFilesServerSide_js_1 = require("../runtime/renderPage/loadUserFile
51
51
  const getHook_js_1 = require("../../shared/hooks/getHook.js");
52
52
  const noRouteMatch_js_1 = require("../../shared/route/noRouteMatch.js");
53
53
  const getVikeConfig_js_1 = require("../plugin/plugins/importUserCode/v1-design/getVikeConfig.js");
54
- async function prerenderFromAPI(options = {}) {
54
+ const logHintForCjsEsmError_js_1 = require("../runtime/renderPage/logHintForCjsEsmError.js");
55
+ async function runPrerenderFromAPI(options = {}) {
55
56
  await runPrerender(options, 'prerender()');
56
57
  }
57
- exports.prerenderFromAPI = prerenderFromAPI;
58
- async function prerenderFromCLI(options) {
59
- await runPrerender(options, '$ vike prerender');
58
+ exports.runPrerenderFromAPI = runPrerenderFromAPI;
59
+ async function runPrerenderFromCLI(options) {
60
+ try {
61
+ await runPrerender(options, '$ vike prerender');
62
+ }
63
+ catch (err) {
64
+ console.error(err);
65
+ (0, logHintForCjsEsmError_js_1.logHintForCjsEsmError)(err);
66
+ process.exit(1);
67
+ }
60
68
  }
61
- exports.prerenderFromCLI = prerenderFromCLI;
62
- async function prerenderFromAutoFullBuild(options) {
63
- await runPrerender(options, null);
69
+ exports.runPrerenderFromCLI = runPrerenderFromCLI;
70
+ async function runPrerenderFromAutoFullBuild(options) {
71
+ try {
72
+ await runPrerender(options, null);
73
+ }
74
+ catch (err) {
75
+ console.error(err);
76
+ (0, logHintForCjsEsmError_js_1.logHintForCjsEsmError)(err);
77
+ process.exit(1);
78
+ }
64
79
  }
65
- exports.prerenderFromAutoFullBuild = prerenderFromAutoFullBuild;
80
+ exports.runPrerenderFromAutoFullBuild = runPrerenderFromAutoFullBuild;
66
81
  async function runPrerender(options, manuallyTriggered) {
67
82
  checkOutdatedOptions(options);
83
+ (0, getHook_js_1.setIsPrerenderering)();
68
84
  const logLevel = !!options.onPagePrerender ? 'warn' : 'info';
69
85
  if (logLevel === 'info') {
70
86
  console.log(`${picocolors_1.default.cyan(`vike v${utils_js_1.projectInfo.projectVersion}`)} ${picocolors_1.default.green('pre-rendering HTML...')}`);
@@ -700,7 +716,7 @@ function isSameUrl(url1, url2) {
700
716
  function normalizeUrl(url) {
701
717
  return '/' + url.split('/').filter(Boolean).join('/');
702
718
  }
703
- function prerenderForceExit() {
719
+ function runPrerender_forceExit() {
704
720
  // Force exit; known situations where pre-rendering is hanging:
705
721
  // - https://github.com/vikejs/vike/discussions/774#discussioncomment-5584551
706
722
  // - https://github.com/vikejs/vike/issues/807#issuecomment-1519010902
@@ -710,7 +726,7 @@ function prerenderForceExit() {
710
726
  assertInfo(false, "Pre-rendering was forced exit. (Didn't gracefully exit because the event queue isn't empty. This is usally fine, see ...", { onlyOnce: false })
711
727
  */
712
728
  }
713
- exports.prerenderForceExit = prerenderForceExit;
729
+ exports.runPrerender_forceExit = runPrerender_forceExit;
714
730
  function assertIsNotAbort(err, urlOr404) {
715
731
  if (!(0, abort_js_1.isAbortError)(err))
716
732
  return;
@@ -13,10 +13,6 @@ exports.setImportBuildGetters = setImportBuildGetters;
13
13
  async function loadImportBuild(outDir) {
14
14
  if (!buildGetters.getters) {
15
15
  await (0, loadServerBuild_js_1.loadServerBuild)(outDir);
16
- // Await dist/server/importBuild.cjs
17
- await (0, utils_js_1.autoRetry)(() => {
18
- (0, utils_js_1.assert)(buildGetters.getters);
19
- }, 2000);
20
16
  (0, utils_js_1.assert)(buildGetters.getters);
21
17
  }
22
18
  const [pageFiles, clientManifest, pluginManifest] = await Promise.all([
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errror_cannot_use_import_outside_of_module = void 0;
4
+ // https://github.com/vikejs/vike/discussions/571#discussioncomment-6137618
5
+ exports.errror_cannot_use_import_outside_of_module = `
6
+ import{useRunner as e}from"react-runner";export*from"react-runner";import t,{useState as r,useEffect as n,Fragment as a,useCallback as l,useRef as o,useMemo as c,createContext as s,useContext as i}from"react";import p from"react-simple-code-editor";import m,{Prism as u}from"prism-react-renderer";function g(){return g=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},g.apply(this,arguments)}function y(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)t.indexOf(r=l[n])>=0||(a[r]=e[r]);return a}const d=["initialCode","transformCode"],h=t=>{let{initialCode:a="",transformCode:l}=t,o=y(t,d);const[c,s]=r(a),{element:i,error:p}=e(g({code:l?l(c):c},o));return n(()=>{s(a)},[a]),{element:i,error:p,code:c,onChange:s}},f={plain:{color:"#ffffff",backgroundColor:"#282c34"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#b2b2b2"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string","attr-value"],style:{color:"#8dc891"}},{types:["punctuation"],style:{color:"#88c6Be"}},{types:["selector","char","builtin","inserted"],style:{color:"#d8dee9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:"#c5a5c5"}},{types:["atrule","class-name"],style:{color:"#fac863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"700"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["namespace"],style:{opacity:.7}}]},b=["children","language","theme","Prism","padding","noWrapper","noWrap","className","style"],C=e=>{let{children:r,language:n="jsx",theme:l=f,Prism:o=u,padding:c=10,noWrapper:s,noWrap:i,className:p,style:d}=e,h=y(e,b);/*#__PURE__*/return t.createElement(m,{code:r||"",language:n,Prism:o,theme:l},({className:e,style:r,tokens:n,getLineProps:l,getTokenProps:o})=>{const m=n.map((e,r)=>/*#__PURE__*/t.createElement(a,{key:r},/*#__PURE__*/t.createElement("span",l({line:e}),e.map((e,r)=>/*#__PURE__*/t.createElement("span",o({token:e,key:r})))),"\\n"));return s?m:/*#__PURE__*/t.createElement("pre",g({className:p?:e,style:g({},r,{margin:0,padding:c,whiteSpace:i?"pre":"pre-wrap"},d)},h),m)})},v=["defaultValue","value","language","theme","Prism","highlight","padding","onChange"],E=e=>{let{defaultValue:n,value:a,language:s="jsx",theme:i=f,Prism:m,highlight:u,padding:d=10,onChange:h}=e,b=y(e,v);const[E,P]=r(n||""),k=void 0!==a,W=l(e=>/*#__PURE__*/t.createElement(C,{language:s,theme:i,Prism:m,noWrapper:!0},e),[s,i,m]),j=o(h);j.current=h;const x=l(e=>{k||P(e),null==j.current||j.current(e)},[k]),O=c(()=>g({},i.plain,b.style),[i.plain,b.style]);/*#__PURE__*/return t.createElement(p,g({},b,{highlight:u||W,padding:d,value:k?a:E,onValueChange:x,style:O}))},P=s({}),k=()=>i(P),W=["children","code","language","theme"],j=e=>{let{children:r,code:n="",language:a="jsx",theme:l=f}=e,o=y(e,W);const{element:c,error:s,code:i,onChange:p}=h(g({initialCode:n},o));/*#__PURE__*/return t.createElement(P.Provider,{value:{element:c,error:s,code:i,onChange:p,language:a,theme:l}},r)},x=e=>{const{code:r,language:n,theme:a,onChange:l}=k();/*#__PURE__*/return t.createElement(E,g({value:r,language:n,theme:a,onChange:l},e))},O=["Component"],w=e=>{let{Component:r="div"}=e,n=y(e,O);const{element:a}=k();/*#__PURE__*/return t.createElement(r,n,a)},N=e=>{const{error:r}=k();return r?/*#__PURE__*/t.createElement("pre",e,r):/*#__PURE__*/t.createElement(t.Fragment,null)};export{C as CodeBlock,E as CodeEditor,P as LiveContext,x as LiveEditor,N as LiveError,w as LivePreview,j as LiveProvider,f as defaultTheme,k as useLiveContext,h as useLiveRunner};
7
+ ^^^^^^
8
+
9
+ SyntaxError: Cannot use import statement outside a module
10
+ at Object.compileFunction (node:vm:360:18)
11
+ at wrapSafe (node:internal/modules/cjs/loader:1084:15)
12
+ at Module._compile (node:internal/modules/cjs/loader:1119:27)
13
+ at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)
14
+ at Module.load (node:internal/modules/cjs/loader:1033:32)
15
+ at Function.Module._load (node:internal/modules/cjs/loader:868:12)
16
+ at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:169:29)
17
+ at ModuleJob.run (node:internal/modules/esm/module_job:193:25)
18
+ at processTicksAndRejections (node:internal/process/task_queues:96:5)
19
+ at async Promise.all (index 0)
20
+ `;