vike 0.4.216 → 0.4.217

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 (85) hide show
  1. package/dist/cjs/node/api/build.js +4 -2
  2. package/dist/cjs/node/api/prepareViteApiCall.js +14 -4
  3. package/dist/cjs/node/plugin/index.js +5 -7
  4. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +15 -12
  5. package/dist/cjs/node/plugin/plugins/baseUrls.js +17 -12
  6. package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +1 -1
  7. package/dist/cjs/node/plugin/plugins/buildConfig.js +4 -5
  8. package/dist/cjs/node/plugin/plugins/commonConfig.js +14 -1
  9. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
  10. package/dist/cjs/node/plugin/plugins/devConfig/index.js +1 -1
  11. package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +4 -7
  12. package/dist/cjs/node/plugin/plugins/importBuild/getVikeManifest.js +2 -2
  13. package/dist/cjs/node/plugin/plugins/importBuild/index.js +8 -6
  14. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +8 -8
  15. package/dist/cjs/node/plugin/plugins/importUserCode/index.js +9 -13
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +128 -0
  17. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +40 -26
  18. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +3 -4
  19. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +1 -1
  20. package/dist/cjs/node/plugin/plugins/previewConfig.js +4 -3
  21. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +4 -1
  22. package/dist/cjs/node/prerender/runPrerender.js +2 -4
  23. package/dist/cjs/node/runtime/globalContext.js +16 -8
  24. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -1
  25. package/dist/cjs/node/shared/resolveBase.js +41 -0
  26. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  27. package/dist/esm/node/api/build.js +4 -2
  28. package/dist/esm/node/api/prepareViteApiCall.d.ts +1 -1
  29. package/dist/esm/node/api/prepareViteApiCall.js +14 -4
  30. package/dist/esm/node/plugin/index.d.ts +3 -3
  31. package/dist/esm/node/plugin/index.js +3 -5
  32. package/dist/esm/node/plugin/plugins/autoFullBuild.js +15 -12
  33. package/dist/esm/node/plugin/plugins/baseUrls.d.ts +2 -2
  34. package/dist/esm/node/plugin/plugins/baseUrls.js +17 -12
  35. package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +1 -1
  36. package/dist/esm/node/plugin/plugins/buildConfig.js +4 -5
  37. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +1 -1
  38. package/dist/esm/node/plugin/plugins/commonConfig.js +15 -2
  39. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.d.ts +1 -1
  40. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
  41. package/dist/esm/node/plugin/plugins/devConfig/index.js +1 -1
  42. package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +4 -7
  43. package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.d.ts +3 -2
  44. package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.js +2 -2
  45. package/dist/esm/node/plugin/plugins/importBuild/index.js +8 -6
  46. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +2 -2
  47. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +8 -8
  48. package/dist/esm/node/plugin/plugins/importUserCode/index.js +11 -15
  49. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
  50. package/dist/esm/{shared/ConfigVike.d.ts → node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts} +14 -12
  51. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +123 -0
  52. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +8 -6
  53. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +41 -27
  54. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +3 -4
  55. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +1 -1
  56. package/dist/esm/node/plugin/plugins/previewConfig.js +4 -3
  57. package/dist/esm/node/plugin/plugins/setGlobalContext.js +5 -2
  58. package/dist/esm/node/prerender/runPrerender.js +2 -4
  59. package/dist/esm/node/runtime/globalContext.d.ts +6 -2
  60. package/dist/esm/node/runtime/globalContext.js +16 -8
  61. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -1
  62. package/dist/esm/node/shared/resolveBase.d.ts +11 -0
  63. package/dist/esm/node/shared/resolveBase.js +36 -0
  64. package/dist/esm/shared/page-configs/Config.d.ts +2 -2
  65. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  66. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  67. package/dist/esm/utils/projectInfo.d.ts +1 -1
  68. package/package.json +1 -1
  69. package/dist/cjs/node/plugin/plugins/config/assertVikeConfig.js +0 -75
  70. package/dist/cjs/node/plugin/plugins/config/index.js +0 -81
  71. package/dist/cjs/node/plugin/plugins/config/pickFirst.js +0 -6
  72. package/dist/cjs/node/plugin/plugins/config/resolveBase.js +0 -47
  73. package/dist/cjs/node/shared/getConfigVike.js +0 -10
  74. package/dist/cjs/shared/ConfigVike.js +0 -2
  75. package/dist/esm/node/plugin/plugins/config/assertVikeConfig.d.ts +0 -7
  76. package/dist/esm/node/plugin/plugins/config/assertVikeConfig.js +0 -73
  77. package/dist/esm/node/plugin/plugins/config/index.d.ts +0 -3
  78. package/dist/esm/node/plugin/plugins/config/index.js +0 -76
  79. package/dist/esm/node/plugin/plugins/config/pickFirst.d.ts +0 -1
  80. package/dist/esm/node/plugin/plugins/config/pickFirst.js +0 -3
  81. package/dist/esm/node/plugin/plugins/config/resolveBase.d.ts +0 -10
  82. package/dist/esm/node/plugin/plugins/config/resolveBase.js +0 -42
  83. package/dist/esm/node/shared/getConfigVike.d.ts +0 -4
  84. package/dist/esm/node/shared/getConfigVike.js +0 -8
  85. package/dist/esm/shared/ConfigVike.js +0 -1
@@ -32,13 +32,15 @@ const vite_1 = require("vite");
32
32
  * https://vike.dev/api#build
33
33
  */
34
34
  async function build(options = {}) {
35
- const { viteConfigEnhanced, configVike } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options.viteConfig, 'build');
35
+ const { viteConfigEnhanced, vikeConfigGlobal } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options.viteConfig, 'build');
36
36
  // Build client-side
37
37
  const outputClient = await (0, vite_1.build)(viteConfigEnhanced);
38
38
  // Build server-side
39
39
  const outputServer = await (0, vite_1.build)(setSSR(viteConfigEnhanced));
40
40
  // Pre-render
41
- if (configVike.prerender && !configVike.prerender.disableAutoRun && configVike.disableAutoFullBuild !== 'prerender') {
41
+ if (vikeConfigGlobal.prerender &&
42
+ !vikeConfigGlobal.prerender.disableAutoRun &&
43
+ vikeConfigGlobal.disableAutoFullBuild !== 'prerender') {
42
44
  const { runPrerenderFromAutoRun } = await Promise.resolve().then(() => __importStar(require('../prerender/runPrerender.js')));
43
45
  await runPrerenderFromAutoRun(viteConfigEnhanced, true);
44
46
  }
@@ -25,9 +25,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.prepareViteApiCall = prepareViteApiCall;
27
27
  const vite_1 = require("vite");
28
- const getConfigVike_js_1 = require("../shared/getConfigVike.js");
29
28
  const pluginName_js_1 = require("../plugin/plugins/commonConfig/pluginName.js");
30
29
  const context_js_1 = require("./context.js");
30
+ const getVikeConfig_js_1 = require("../plugin/plugins/importUserCode/v1-design/getVikeConfig.js");
31
31
  async function prepareViteApiCall(viteConfig = {}, operation) {
32
32
  (0, context_js_1.setOperation)(operation);
33
33
  return enhanceViteConfig(viteConfig, operation);
@@ -45,13 +45,23 @@ async function enhanceViteConfig(viteConfig = {}, operation) {
45
45
  };
46
46
  viteConfigResolved = await resolveViteConfig(viteConfigEnhanced, operation);
47
47
  }
48
- const configVike = await (0, getConfigVike_js_1.getConfigVike)(viteConfigResolved);
48
+ // TODO: use loadConfigFromFile() instead of viteConfigResolved
49
+ const { vikeConfigGlobal } = await (0, getVikeConfig_js_1.getVikeConfig2)(viteConfigResolved.root, operation === 'dev', viteConfigResolved._vikeVitePluginOptions);
49
50
  // TODO: enable Vike extensions to add Vite plugins
50
51
  return {
51
52
  viteConfigEnhanced,
52
- configVike
53
+ vikeConfigGlobal
53
54
  };
54
55
  }
55
56
  async function resolveViteConfig(viteConfig, operation) {
56
- return await (0, vite_1.resolveConfig)(viteConfig, operation === 'build' || operation === 'prerender' ? 'build' : 'serve', 'custom', operation === 'dev' ? 'development' : 'production', operation === 'preview');
57
+ const args = getResolveConfigArgs(viteConfig, operation);
58
+ return await (0, vite_1.resolveConfig)(...args);
59
+ }
60
+ function getResolveConfigArgs(viteConfig, operation) {
61
+ const inlineConfig = viteConfig;
62
+ const command = operation === 'build' || operation === 'prerender' ? 'build' : 'serve';
63
+ const defaultMode = operation === 'dev' ? 'development' : 'production';
64
+ const defaultNodeEnv = defaultMode;
65
+ const isPreview = operation === 'preview';
66
+ return [inlineConfig, command, defaultMode, defaultNodeEnv, isPreview];
57
67
  }
@@ -18,13 +18,12 @@ const index_js_1 = require("./plugins/devConfig/index.js");
18
18
  const packageJsonFile_js_1 = require("./plugins/packageJsonFile.js");
19
19
  const removeRequireHookPlugin_js_1 = require("./plugins/removeRequireHookPlugin.js");
20
20
  const index_js_2 = require("./plugins/importUserCode/index.js");
21
- const index_js_3 = require("./plugins/config/index.js");
22
21
  const distFileNames_js_1 = require("./plugins/distFileNames.js");
23
22
  const extractAssetsPlugin_js_1 = require("./plugins/extractAssetsPlugin.js");
24
23
  const extractExportNamesPlugin_js_1 = require("./plugins/extractExportNamesPlugin.js");
25
24
  const suppressRollupWarning_js_1 = require("./plugins/suppressRollupWarning.js");
26
25
  const setGlobalContext_js_1 = require("./plugins/setGlobalContext.js");
27
- const index_js_4 = require("./plugins/importBuild/index.js");
26
+ const index_js_3 = require("./plugins/importBuild/index.js");
28
27
  const commonConfig_js_1 = require("./plugins/commonConfig.js");
29
28
  const baseUrls_js_1 = require("./plugins/baseUrls.js");
30
29
  const envVars_js_1 = require("./plugins/envVars.js");
@@ -38,10 +37,9 @@ const vite6HmrRegressionWorkaround_js_1 = require("./plugins/vite6HmrRegressionW
38
37
  assertViteVersion();
39
38
  (0, getPageAssets_js_1.setResolveClientEntriesDev)(resolveClientEntriesDev_js_1.resolveClientEntriesDev);
40
39
  // Return as `any` to avoid Plugin type mismatches when there are multiple Vite versions installed
41
- function plugin(vikeConfig) {
40
+ function plugin(vikeVitePluginOptions) {
42
41
  const plugins = [
43
- (0, index_js_3.resolveVikeConfig)(vikeConfig), // The configResolved() hook of resolveVikeConfig() should be the first called
44
- ...(0, commonConfig_js_1.commonConfig)(),
42
+ ...(0, commonConfig_js_1.commonConfig)(vikeVitePluginOptions),
45
43
  (0, index_js_2.importUserCode)(),
46
44
  ...(0, index_js_1.devConfig)(),
47
45
  ...(0, buildConfig_js_1.buildConfig)(),
@@ -54,8 +52,8 @@ function plugin(vikeConfig) {
54
52
  (0, extractExportNamesPlugin_js_1.extractExportNamesPlugin)(),
55
53
  (0, suppressRollupWarning_js_1.suppressRollupWarning)(),
56
54
  ...(0, setGlobalContext_js_1.setGlobalContext)(),
57
- ...(0, index_js_4.importBuild)(),
58
- (0, baseUrls_js_1.baseUrls)(vikeConfig),
55
+ ...(0, index_js_3.importBuild)(),
56
+ (0, baseUrls_js_1.baseUrls)(vikeVitePluginOptions),
59
57
  (0, envVars_js_1.envVarsPlugin)(),
60
58
  (0, fileEnv_js_1.fileEnv)(),
61
59
  (0, workaroundCssModuleHmr_js_1.workaroundCssModuleHmr)(),
@@ -8,24 +8,25 @@ exports.autoFullBuild = autoFullBuild;
8
8
  const vite_1 = require("vite");
9
9
  const utils_js_1 = require("../utils.js");
10
10
  const runPrerender_js_1 = require("../../prerender/runPrerender.js");
11
- const getConfigVike_js_1 = require("../../shared/getConfigVike.js");
12
11
  const isViteCliCall_js_1 = require("../shared/isViteCliCall.js");
13
12
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
14
13
  const logErrorHint_js_1 = require("../../runtime/renderPage/logErrorHint.js");
15
14
  const buildConfig_js_1 = require("./buildConfig.js");
15
+ const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
16
16
  let forceExit = false;
17
17
  function autoFullBuild() {
18
18
  let config;
19
- let configVike;
19
+ let vikeConfigGlobal;
20
20
  return [
21
21
  {
22
22
  name: 'vike:autoFullBuild',
23
23
  apply: 'build',
24
24
  enforce: 'pre',
25
25
  async configResolved(config_) {
26
- configVike = await (0, getConfigVike_js_1.getConfigVike)(config_);
26
+ const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config_);
27
+ vikeConfigGlobal = vikeConfig.vikeConfigGlobal;
27
28
  config = config_;
28
- abortViteBuildSsr(configVike);
29
+ abortViteBuildSsr(vikeConfigGlobal);
29
30
  },
30
31
  writeBundle: {
31
32
  /* We can't use this because it breaks Vite's logging. TODO: try again with latest Vite version.
@@ -34,7 +35,7 @@ function autoFullBuild() {
34
35
  */
35
36
  async handler(_options, bundle) {
36
37
  try {
37
- await triggerFullBuild(config, configVike, bundle);
38
+ await triggerFullBuild(config, vikeConfigGlobal, bundle);
38
39
  }
39
40
  catch (err) {
40
41
  // Avoid Rollup prefixing the error with [vike:autoFullBuild], for example see https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
@@ -60,10 +61,10 @@ function autoFullBuild() {
60
61
  }
61
62
  ];
62
63
  }
63
- async function triggerFullBuild(config, configVike, bundle) {
64
+ async function triggerFullBuild(config, vikeConfigGlobal, bundle) {
64
65
  if (config.build.ssr)
65
66
  return; // already triggered
66
- if (isDisabled(configVike))
67
+ if (isDisabled(vikeConfigGlobal))
67
68
  return;
68
69
  // Workaround for @vitejs/plugin-legacy
69
70
  // - The legacy plugin triggers its own Rollup build for the client-side.
@@ -94,19 +95,21 @@ async function triggerFullBuild(config, configVike, bundle) {
94
95
  (0, logErrorHint_js_1.logErrorHint)(err);
95
96
  process.exit(1);
96
97
  }
97
- if (configVike.prerender && !configVike.prerender.disableAutoRun && configVike.disableAutoFullBuild !== 'prerender') {
98
+ if (vikeConfigGlobal.prerender &&
99
+ !vikeConfigGlobal.prerender.disableAutoRun &&
100
+ vikeConfigGlobal.disableAutoFullBuild !== 'prerender') {
98
101
  await (0, runPrerender_js_1.runPrerenderFromAutoRun)(configInline, false);
99
102
  forceExit = true;
100
103
  }
101
104
  }
102
- function abortViteBuildSsr(configVike) {
103
- if (configVike.disableAutoFullBuild !== true && (0, isViteCliCall_js_1.isViteCliCall)() && (0, isViteCliCall_js_1.getViteConfigFromCli)()?.build.ssr) {
105
+ function abortViteBuildSsr(vikeConfigGlobal) {
106
+ if (vikeConfigGlobal.disableAutoFullBuild !== true && (0, isViteCliCall_js_1.isViteCliCall)() && (0, isViteCliCall_js_1.getViteConfigFromCli)()?.build.ssr) {
104
107
  (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 });
105
108
  process.exit(0);
106
109
  }
107
110
  }
108
- function isDisabled(configVike) {
109
- const { disableAutoFullBuild } = configVike;
111
+ function isDisabled(vikeConfigGlobal) {
112
+ const { disableAutoFullBuild } = vikeConfigGlobal;
110
113
  if (disableAutoFullBuild === null || disableAutoFullBuild === 'prerender') {
111
114
  return !(0, isViteCliCall_js_1.isViteCliCall)();
112
115
  }
@@ -1,19 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.baseUrls = baseUrls;
4
- const resolveBase_js_1 = require("../plugins/config/resolveBase.js");
4
+ const resolveBase_js_1 = require("../../shared/resolveBase.js");
5
5
  const utils_js_1 = require("../utils.js");
6
- const getConfigVike_js_1 = require("../../shared/getConfigVike.js");
7
- function baseUrls(configVike) {
8
- let baseServer;
9
- let baseAssets;
6
+ const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
7
+ function baseUrls(vikeVitePluginOptions) {
8
+ let bases;
10
9
  return {
11
10
  name: 'vike:baseUrls',
12
11
  enforce: 'post',
13
12
  async config(config) {
14
- const bases = (0, resolveBase_js_1.resolveBaseFromUserConfig)(config, configVike);
15
- baseServer = bases.baseServer;
16
- baseAssets = bases.baseAssets;
13
+ // TODO: fix bug: use getVikeConfig2() and udpate check below
14
+ bases = resolveBaseFromUserConfig(config, vikeVitePluginOptions);
15
+ const { baseServer, baseAssets } = bases;
17
16
  // We cannot define these in configResolved() because Vite picks up the env variables before any configResolved() hook is called
18
17
  process.env.BASE_SERVER = baseServer;
19
18
  process.env.BASE_ASSETS = baseAssets;
@@ -24,14 +23,16 @@ function baseUrls(configVike) {
24
23
  'BASE_ASSETS'
25
24
  ],
26
25
  base: baseAssets, // Make Vite inject baseAssets to imports e.g. `import logoUrl from './logo.svg.js'`
27
- _baseOriginal: config.base ?? '/__UNSET__' // Vite resolves `_baseOriginal: null` to `undefined`
26
+ _baseViteOriginal: config.base ?? '/__UNSET__' // Vite resolves `_baseViteOriginal: null` to `undefined`
28
27
  };
29
28
  },
30
29
  async configResolved(config) {
31
- const configVike = await (0, getConfigVike_js_1.getConfigVike)(config);
30
+ const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
31
+ const { baseServer, baseAssets } = vikeConfig.vikeConfigGlobal;
32
+ const basesResolved = (0, resolveBase_js_1.resolveBaseFromResolvedConfig)(baseServer, baseAssets, config);
32
33
  // Ensure that the premature base URL resolving we did in config() isn't erroneous
33
- (0, utils_js_1.assert)(configVike.baseServer === baseServer);
34
- (0, utils_js_1.assert)(configVike.baseAssets === baseAssets);
34
+ (0, utils_js_1.assert)(basesResolved.baseServer === bases.baseServer);
35
+ (0, utils_js_1.assert)(basesResolved.baseAssets === bases.baseAssets);
35
36
  /* In dev, Vite seems buggy around setting vite.config.js#base to an absolute URL (e.g. http://localhost:8080/cdn/)
36
37
  * - In dev, Vite removes the URL origin. (I.e. it resolves the user config `vite.config.js#base: 'http://localhost:8080/cdn/'` to resolved config `config.base === '/cdn/'`.)
37
38
  * - Instead of having an internal Vike assertion fail, we let the user discover Vite's buggy behavior.
@@ -40,3 +41,7 @@ function baseUrls(configVike) {
40
41
  }
41
42
  };
42
43
  }
44
+ function resolveBaseFromUserConfig(config, vikeVitePluginOptions) {
45
+ const baseViteOriginal = config.base ?? null;
46
+ return (0, resolveBase_js_1.resolveBase)(baseViteOriginal, vikeVitePluginOptions?.baseServer ?? null, vikeVitePluginOptions?.baseAssets ?? null);
47
+ }
@@ -207,7 +207,7 @@ function fixServerAssets_assertCssTarget_populate(config) {
207
207
  async function fixServerAssets_assertCssTarget(config) {
208
208
  if (!fixServerAssets_isEnabled())
209
209
  return;
210
- if (!(await (0, getVikeConfig_js_1.isV1Design)(config, false)))
210
+ if (!(await (0, getVikeConfig_js_1.isV1Design)(config)))
211
211
  return;
212
212
  const targetsServer = targets.filter((t) => t.isServerSide);
213
213
  const targetsClient = targets.filter((t) => !t.isServerSide);
@@ -10,7 +10,6 @@ exports.analyzeClientEntries = analyzeClientEntries;
10
10
  const utils_js_1 = require("../utils.js");
11
11
  const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
12
12
  const findPageFiles_js_1 = require("../shared/findPageFiles.js");
13
- const getConfigVike_js_1 = require("../../shared/getConfigVike.js");
14
13
  const virtualFilePageConfigValuesAll_js_1 = require("../../shared/virtual-files/virtualFilePageConfigValuesAll.js");
15
14
  const extractAssetsQuery_js_1 = require("../../shared/extractAssetsQuery.js");
16
15
  const module_1 = require("module");
@@ -48,7 +47,7 @@ function buildConfig() {
48
47
  addLogHook();
49
48
  outDirs = (0, utils_js_1.getOutDirs)(config);
50
49
  {
51
- isServerAssetsFixEnabled = (0, fixServerAssets_js_1.fixServerAssets_isEnabled)() && (await (0, getVikeConfig_js_1.isV1Design)(config, false));
50
+ isServerAssetsFixEnabled = (0, fixServerAssets_js_1.fixServerAssets_isEnabled)() && (await (0, getVikeConfig_js_1.isV1Design)(config));
52
51
  if (isServerAssetsFixEnabled) {
53
52
  // https://github.com/vikejs/vike/issues/1339
54
53
  config.build.ssrEmitAssets = true;
@@ -117,9 +116,9 @@ function buildConfig() {
117
116
  ];
118
117
  }
119
118
  async function getEntries(config) {
120
- const configVike = await (0, getConfigVike_js_1.getConfigVike)(config);
121
- const pageFileEntries = await getPageFileEntries(config, configVike.includeAssetsImportedByServer); // TODO/v1-release: remove
122
- const { pageConfigs } = await (0, getVikeConfig_js_1.getVikeConfig)(config, false);
119
+ const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
120
+ const { pageConfigs } = vikeConfig;
121
+ const pageFileEntries = await getPageFileEntries(config, vikeConfig.vikeConfigGlobal.includeAssetsImportedByServer); // TODO/v1-release: remove
123
122
  (0, utils_js_1.assertUsage)(Object.keys(pageFileEntries).length !== 0 || pageConfigs.length !== 0, 'At least one page should be defined, see https://vike.dev/add');
124
123
  if ((0, utils_js_1.viteIsSSR)(config)) {
125
124
  const pageEntries = getPageEntries(pageConfigs);
@@ -15,8 +15,21 @@ const pluginName_js_1 = require("./commonConfig/pluginName.js");
15
15
  const getEnvVarObject_js_1 = require("../shared/getEnvVarObject.js");
16
16
  const isViteCliCall_js_1 = require("../shared/isViteCliCall.js");
17
17
  const context_js_1 = require("../../api/context.js");
18
- function commonConfig() {
18
+ function commonConfig(vikeVitePluginOptions = {}) {
19
19
  return [
20
+ {
21
+ name: `${pluginName_js_1.pluginName}:pre`,
22
+ enforce: 'pre',
23
+ config: {
24
+ order: 'pre',
25
+ handler(_config, env) {
26
+ return {
27
+ _isDev: (0, utils_js_1.isDevCheck)(env),
28
+ _vikeVitePluginOptions: vikeVitePluginOptions
29
+ };
30
+ }
31
+ }
32
+ },
20
33
  {
21
34
  name: pluginName_js_1.pluginName,
22
35
  configResolved(config) {
@@ -8,9 +8,9 @@ const buildConfig_js_1 = require("../buildConfig.js");
8
8
  const virtualFileImportUserCode_js_1 = require("../../../shared/virtual-files/virtualFileImportUserCode.js");
9
9
  const getFilePath_js_1 = require("../../shared/getFilePath.js");
10
10
  const debug = (0, utils_js_1.createDebugger)('vike:optimizeDeps');
11
- async function determineOptimizeDeps(config, isDev) {
12
- const { pageConfigs } = await (0, getVikeConfig_js_1.getVikeConfig)(config, isDev);
13
- const { entries, include } = await getPageDeps(config, pageConfigs, isDev);
11
+ async function determineOptimizeDeps(config) {
12
+ const { pageConfigs } = await (0, getVikeConfig_js_1.getVikeConfig)(config);
13
+ const { entries, include } = await getPageDeps(config, pageConfigs);
14
14
  {
15
15
  // This actually doesn't work: Vite's dep optimizer doesn't seem to be able to crawl virtual files.
16
16
  // - Should we make it work? E.g. by creating a temporary file at node_modules/.vike/virtualFiles.js
@@ -30,7 +30,7 @@ async function determineOptimizeDeps(config, isDev) {
30
30
  'config.optimizeDeps.include': config.optimizeDeps.include
31
31
  });
32
32
  }
33
- async function getPageDeps(config, pageConfigs, isDev) {
33
+ async function getPageDeps(config, pageConfigs) {
34
34
  let entries = [];
35
35
  let include = [];
36
36
  const addEntry = (e) => {
@@ -69,7 +69,7 @@ async function getPageDeps(config, pageConfigs, isDev) {
69
69
  }
70
70
  // V0.4 design
71
71
  {
72
- const pageFiles = await (0, findPageFiles_js_1.findPageFiles)(config, ['.page', '.page.client'], isDev);
72
+ const pageFiles = await (0, findPageFiles_js_1.findPageFiles)(config, ['.page', '.page.client'], true);
73
73
  const userRootDir = config.root;
74
74
  pageFiles.forEach((filePathAbsoluteUserRootDir) => {
75
75
  const entry = (0, getFilePath_js_1.getFilePathResolved)({ filePathAbsoluteUserRootDir, userRootDir });
@@ -63,7 +63,7 @@ function devConfig() {
63
63
  },
64
64
  async configResolved(config_) {
65
65
  config = config_;
66
- await (0, determineOptimizeDeps_js_1.determineOptimizeDeps)(config, true);
66
+ await (0, determineOptimizeDeps_js_1.determineOptimizeDeps)(config);
67
67
  await (0, determineFsAllowList_js_1.determineFsAllowList)(config);
68
68
  if (!(0, isErrorDebug_js_1.isErrorDebug)()) {
69
69
  await (0, getHttpRequestAsyncStore_js_1.installHttpRequestAsyncStore)();
@@ -10,7 +10,6 @@ exports.extractAssetsPlugin = extractAssetsPlugin;
10
10
  const utils_js_1 = require("../utils.js");
11
11
  const virtual_files_js_1 = require("../../shared/virtual-files.js");
12
12
  const extractAssetsQuery_js_1 = require("../../shared/extractAssetsQuery.js");
13
- const getConfigVike_js_1 = require("../../shared/getConfigVike.js");
14
13
  const isAsset_js_1 = require("../shared/isAsset.js");
15
14
  const parseEsModule_js_1 = require("../shared/parseEsModule.js");
16
15
  const rollupSourceMap_js_1 = require("../shared/rollupSourceMap.js");
@@ -27,7 +26,6 @@ const EMPTY_MODULE_ID = 'virtual:vike:empty-module';
27
26
  const debug = (0, utils_js_1.createDebugger)('vike:extractAssets');
28
27
  function extractAssetsPlugin() {
29
28
  let config;
30
- let configVike;
31
29
  let vikeConfig;
32
30
  let isServerAssetsFixEnabled;
33
31
  return [
@@ -47,7 +45,7 @@ function extractAssetsPlugin() {
47
45
  (0, assertV1Design_js_1.assertV1Design)(vikeConfig.pageConfigs, true);
48
46
  (0, utils_js_1.assert)(false);
49
47
  }
50
- (0, utils_js_1.assert)(configVike.includeAssetsImportedByServer);
48
+ (0, utils_js_1.assert)(vikeConfig.vikeConfigGlobal.includeAssetsImportedByServer);
51
49
  (0, utils_js_1.assert)(!(0, utils_js_1.viteIsSSR_options)(options));
52
50
  const importStatements = await (0, parseEsModule_js_1.getImportStatements)(src);
53
51
  const moduleNames = getImportedModules(importStatements);
@@ -80,7 +78,7 @@ function extractAssetsPlugin() {
80
78
  if (!extractAssetsRE.test(importer)) {
81
79
  return;
82
80
  }
83
- (0, utils_js_1.assert)(configVike.includeAssetsImportedByServer);
81
+ (0, utils_js_1.assert)(vikeConfig.vikeConfigGlobal.includeAssetsImportedByServer);
84
82
  let resolution = null;
85
83
  try {
86
84
  resolution = await this.resolve(source, importer, { skipSelf: true, ...options });
@@ -139,10 +137,9 @@ function extractAssetsPlugin() {
139
137
  {
140
138
  name: 'vike:extractAssets-4',
141
139
  async configResolved(config_) {
142
- configVike = await (0, getConfigVike_js_1.getConfigVike)(config_);
143
140
  config = config_;
144
- vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config, false);
145
- isServerAssetsFixEnabled = (0, fixServerAssets_js_1.fixServerAssets_isEnabled)() && (await (0, getVikeConfig_js_1.isV1Design)(config, false));
141
+ vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
142
+ isServerAssetsFixEnabled = (0, fixServerAssets_js_1.fixServerAssets_isEnabled)() && (await (0, getVikeConfig_js_1.isV1Design)(config));
146
143
  if (!isServerAssetsFixEnabled) {
147
144
  // https://github.com/vikejs/vike/issues/1060
148
145
  (0, utils_js_1.assertUsage)(!config.plugins.find((p) => p.name === 'vite-tsconfig-paths'), 'vite-tsconfig-paths not supported, remove it and use vite.config.js#resolve.alias instead');
@@ -5,8 +5,8 @@ const utils_js_1 = require("../../utils.js");
5
5
  const assertPluginManifest_js_1 = require("../../../shared/assertPluginManifest.js");
6
6
  const extractExportNamesPlugin_js_1 = require("../extractExportNamesPlugin.js");
7
7
  const globalContext_js_1 = require("../../../runtime/globalContext.js");
8
- function getVikeManifest(configVike) {
9
- const runtimeManifest = (0, globalContext_js_1.getRuntimeManifest)(configVike);
8
+ function getVikeManifest(vikeConfigGlobal, viteConfig) {
9
+ const runtimeManifest = (0, globalContext_js_1.getRuntimeManifest)(vikeConfigGlobal, viteConfig);
10
10
  const manifest = {
11
11
  version: utils_js_1.projectInfo.projectVersion,
12
12
  usesClientRouter: (0, extractExportNamesPlugin_js_1.isUsingClientRouter)(), // TODO/v1-release: remove
@@ -9,37 +9,39 @@ const plugin_1 = require("@brillout/vite-plugin-server-entry/plugin");
9
9
  const utils_js_1 = require("../../utils.js");
10
10
  const path_1 = __importDefault(require("path"));
11
11
  const module_1 = require("module");
12
- const getConfigVike_js_1 = require("../../../shared/getConfigVike.js");
13
12
  const getVikeManifest_js_1 = require("./getVikeManifest.js");
14
13
  const promises_1 = __importDefault(require("fs/promises"));
15
14
  const virtualFileImportUserCode_js_1 = require("../../../shared/virtual-files/virtualFileImportUserCode.js");
15
+ const getVikeConfig_js_1 = require("../importUserCode/v1-design/getVikeConfig.js");
16
16
  // @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
17
17
  const importMetaUrl = `file://${__filename}`;
18
18
  const require_ = (0, module_1.createRequire)(importMetaUrl);
19
19
  const ASSETS_MAP = '__VITE_ASSETS_MAP__';
20
20
  function importBuild() {
21
21
  let config;
22
- let configVike;
22
+ let vikeConfigGlobal;
23
23
  return [
24
24
  {
25
25
  name: 'vike:importBuild:config',
26
26
  enforce: 'post',
27
27
  async configResolved(config_) {
28
28
  config = config_;
29
- configVike = await (0, getConfigVike_js_1.getConfigVike)(config);
29
+ const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
30
+ vikeConfigGlobal = vikeConfig.vikeConfigGlobal;
30
31
  }
31
32
  },
32
33
  ...(0, plugin_1.serverProductionEntryPlugin)({
33
34
  getServerProductionEntry: () => {
34
- return getServerProductionEntryCode(config, configVike);
35
+ return getServerProductionEntryCode(config, vikeConfigGlobal);
35
36
  },
36
37
  libraryName: 'Vike'
37
38
  })
38
39
  ];
39
40
  }
40
- function getServerProductionEntryCode(config, configVike) {
41
+ function getServerProductionEntryCode(config, vikeConfigGlobal) {
41
42
  const importPath = getImportPath(config);
42
- const vikeManifest = (0, getVikeManifest_js_1.getVikeManifest)(configVike);
43
+ const vikeManifest = (0, getVikeManifest_js_1.getVikeManifest)(vikeConfigGlobal, config);
44
+ // Let's eventually simplify and move everything to a single virtual module
43
45
  const importerCode = [
44
46
  ` import { setImportBuildGetters } from '${importPath}';`,
45
47
  ` import * as pageFiles from '${virtualFileImportUserCode_js_1.virtualFileIdImportUserCodeServer}';`,
@@ -11,16 +11,16 @@ const fileTypes_js_1 = require("../../../../shared/getPageFiles/fileTypes.js");
11
11
  const path_1 = __importDefault(require("path"));
12
12
  const getVirtualFilePageConfigs_js_1 = require("./v1-design/getVirtualFilePageConfigs.js");
13
13
  const getVikeConfig_js_1 = require("./v1-design/getVikeConfig.js");
14
- async function getVirtualFileImportUserCode(id, options, configVike, config, isDev) {
14
+ async function getVirtualFileImportUserCode(id, options, vikeConfigGlobal, config, isDev) {
15
15
  const idParsed = (0, virtualFileImportUserCode_js_1.isVirtualFileIdImportUserCode)(id);
16
16
  (0, utils_js_1.assert)(idParsed);
17
17
  const { isForClientSide, isClientRouting } = idParsed;
18
18
  (0, utils_js_1.assert)(isForClientSide === !(0, utils_js_1.viteIsSSR_options)(options));
19
- const isPrerendering = !!configVike.prerender;
20
- const code = await getCode(config, configVike, isForClientSide, isClientRouting, isPrerendering, isDev, id);
19
+ const isPrerendering = !!vikeConfigGlobal.prerender;
20
+ const code = await getCode(config, vikeConfigGlobal, isForClientSide, isClientRouting, isPrerendering, isDev, id);
21
21
  return code;
22
22
  }
23
- async function getCode(config, configVike, isForClientSide, isClientRouting, isPrerendering, isDev, id) {
23
+ async function getCode(config, vikeConfigGlobal, isForClientSide, isClientRouting, isPrerendering, isDev, id) {
24
24
  const { command } = config;
25
25
  (0, utils_js_1.assert)(command === 'serve' || command === 'build');
26
26
  const isBuild = command === 'build';
@@ -29,7 +29,7 @@ async function getCode(config, configVike, isForClientSide, isClientRouting, isP
29
29
  {
30
30
  const globRoots = getGlobRoots(config);
31
31
  (0, utils_js_1.debugGlob)('Glob roots: ', globRoots);
32
- content += await generateGlobImports(globRoots, isBuild, isForClientSide, isClientRouting, configVike, isPrerendering, config, isDev, id);
32
+ content += await generateGlobImports(globRoots, isBuild, isForClientSide, isClientRouting, vikeConfigGlobal, isPrerendering, config, isDev, id);
33
33
  }
34
34
  (0, utils_js_1.debugGlob)(`Glob imports for ${isForClientSide ? 'client' : 'server'}:\n`, content);
35
35
  return content;
@@ -59,7 +59,7 @@ function determineInjection({ fileType, isForClientSide, isClientRouting, isPrer
59
59
  }
60
60
  }
61
61
  }
62
- async function generateGlobImports(globRoots, isBuild, isForClientSide, isClientRouting, configVike, isPrerendering, config, isDev, id) {
62
+ async function generateGlobImports(globRoots, isBuild, isForClientSide, isClientRouting, vikeConfigGlobal, isPrerendering, config, isDev, id) {
63
63
  let fileContent = `// Generated by https://github.com/vikejs/vike/blob/main/vike/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.ts
64
64
 
65
65
  export const pageFilesLazy = {};
@@ -73,7 +73,7 @@ ${await (0, getVirtualFilePageConfigs_js_1.getVirtualFilePageConfigs)(isForClien
73
73
 
74
74
  `;
75
75
  // We still use import.meta.glob() when using th V1 design in order to not break the V1 design deprecation warning
76
- const isV1Design = await (0, getVikeConfig_js_1.isV1Design)(config, isDev);
76
+ const isV1Design = await (0, getVikeConfig_js_1.isV1Design)(config);
77
77
  fileTypes_js_1.fileTypes
78
78
  .filter((fileType) => fileType !== '.css')
79
79
  .forEach((fileType) => {
@@ -91,7 +91,7 @@ ${await (0, getVirtualFilePageConfigs_js_1.getVirtualFilePageConfigs)(isForClien
91
91
  fileContent += getGlobs(globRoots, isBuild, fileType, 'extractExportNames', isV1Design);
92
92
  }
93
93
  });
94
- if (configVike.includeAssetsImportedByServer && isForClientSide) {
94
+ if (vikeConfigGlobal.includeAssetsImportedByServer && isForClientSide) {
95
95
  fileContent += getGlobs(globRoots, isBuild, '.page.server', 'extractAssets', isV1Design);
96
96
  }
97
97
  return fileContent;
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.importUserCode = importUserCode;
7
7
  const vite_1 = require("vite");
8
- const getConfigVike_js_1 = require("../../../shared/getConfigVike.js");
9
8
  const getVirtualFilePageConfigValuesAll_js_1 = require("./v1-design/getVirtualFilePageConfigValuesAll.js");
10
9
  const getVirtualFileImportUserCode_js_1 = require("./getVirtualFileImportUserCode.js");
11
10
  const utils_js_1 = require("../../utils.js");
@@ -18,20 +17,16 @@ const loggerNotProd_js_1 = require("../../shared/loggerNotProd.js");
18
17
  const getFilePath_js_1 = require("../../shared/getFilePath.js");
19
18
  function importUserCode() {
20
19
  let config;
21
- let configVike;
22
- let isDev;
20
+ let vikeConfigGlobal;
23
21
  return {
24
22
  name: 'vike:importUserCode',
25
- config(_, env) {
26
- isDev = (0, utils_js_1.isDevCheck)(env);
27
- },
28
23
  async configResolved(config_) {
29
- configVike = await (0, getConfigVike_js_1.getConfigVike)(config_);
24
+ const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config_);
25
+ vikeConfigGlobal = vikeConfig.vikeConfigGlobal;
30
26
  config = config_;
31
27
  // TODO/v1-release: remove
32
28
  {
33
- (0, utils_js_1.assert)(isDev !== undefined);
34
- const isV1 = await (0, getVikeConfig_js_1.isV1Design)(config, isDev);
29
+ const isV1 = await (0, getVikeConfig_js_1.isV1Design)(config);
35
30
  if (!isV1)
36
31
  config.experimental.importGlobRestoreExtension = true;
37
32
  }
@@ -55,13 +50,14 @@ function importUserCode() {
55
50
  if (!(0, virtual_files_js_1.isVirtualFileId)(id))
56
51
  return undefined;
57
52
  id = (0, virtual_files_js_1.getVirtualFileId)(id);
53
+ const isDev = config._isDev;
58
54
  (0, utils_js_1.assert)(typeof isDev === 'boolean');
59
55
  if ((0, virtualFilePageConfigValuesAll_js_1.isVirtualFileIdPageConfigValuesAll)(id)) {
60
56
  const code = await (0, getVirtualFilePageConfigValuesAll_js_1.getVirtualFilePageConfigValuesAll)(id, isDev, config);
61
57
  return code;
62
58
  }
63
59
  if ((0, virtualFileImportUserCode_js_1.isVirtualFileIdImportUserCode)(id)) {
64
- const code = await (0, getVirtualFileImportUserCode_js_1.getVirtualFileImportUserCode)(id, options, configVike, config, isDev);
60
+ const code = await (0, getVirtualFileImportUserCode_js_1.getVirtualFileImportUserCode)(id, options, vikeConfigGlobal, config, isDev);
65
61
  return code;
66
62
  }
67
63
  },
@@ -88,8 +84,6 @@ function handleFileAddRemove(server, config) {
88
84
  }
89
85
  function handleHotUpdate(ctx, config) {
90
86
  const { file, server } = ctx;
91
- (0, utils_js_1.assertPosixPath)(file);
92
- getVikeConfig_js_1.vikeConfigDependencies.forEach((f) => (0, utils_js_1.assertPosixPath)(f));
93
87
  const isVikeConfig = isVikeConfigModule(file);
94
88
  const isViteModule = ctx.modules.length > 0;
95
89
  /* Should we show this?
@@ -119,6 +113,8 @@ function handleHotUpdate(ctx, config) {
119
113
  }
120
114
  }
121
115
  function isVikeConfigModule(filePathAbsoluteFilesystem) {
116
+ (0, utils_js_1.assertPosixPath)(filePathAbsoluteFilesystem);
117
+ getVikeConfig_js_1.vikeConfigDependencies.forEach((f) => (0, utils_js_1.assertPosixPath)(f));
122
118
  return getVikeConfig_js_1.vikeConfigDependencies.has(filePathAbsoluteFilesystem);
123
119
  }
124
120
  function reloadConfig(filePath, config, op) {
@@ -127,7 +123,7 @@ function reloadConfig(filePath, config, op) {
127
123
  const msg = `${op} ${picocolors_1.default.dim(filePathToShowToUserResolved)}`;
128
124
  (0, loggerNotProd_js_1.logConfigInfo)(msg, 'info');
129
125
  }
130
- (0, getVikeConfig_js_1.reloadVikeConfig)(config.root, (0, utils_js_1.getOutDirs)(config).outDirRoot);
126
+ (0, getVikeConfig_js_1.reloadVikeConfig)(config);
131
127
  }
132
128
  function getVirtualModules(server) {
133
129
  const virtualModules = Array.from(server.moduleGraph.urlToModuleMap.keys())