vike 0.4.161 → 0.4.162-commit-8995471

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 (159) hide show
  1. package/dist/cjs/__internal/index.js +2 -2
  2. package/dist/cjs/node/plugin/index.js +0 -2
  3. package/dist/cjs/node/plugin/plugins/buildConfig.js +41 -37
  4. package/dist/cjs/node/plugin/plugins/config/index.js +2 -7
  5. package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -8
  6. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -18
  7. package/dist/cjs/node/plugin/plugins/devConfig/index.js +2 -4
  8. package/dist/cjs/node/plugin/plugins/envVars.js +6 -2
  9. package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +10 -22
  10. package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
  11. package/dist/cjs/node/plugin/plugins/importBuild/getVikeManifest.js +1 -21
  12. package/dist/cjs/node/plugin/plugins/importBuild/index.js +1 -1
  13. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +29 -95
  14. package/dist/cjs/node/plugin/plugins/importUserCode/index.js +8 -8
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +1 -9
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -0
  17. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +1 -1
  18. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +4 -4
  19. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +1 -1
  20. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +35 -36
  21. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +109 -104
  22. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +39 -33
  23. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +0 -14
  24. package/dist/cjs/node/plugin/shared/rollupSourceMap.js +20 -0
  25. package/dist/cjs/node/plugin/utils.js +0 -1
  26. package/dist/cjs/node/prerender/runPrerender.js +3 -2
  27. package/dist/cjs/node/prerender/utils.js +1 -1
  28. package/dist/cjs/node/runtime/globalContext.js +8 -19
  29. package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +1 -0
  30. package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
  31. package/dist/cjs/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +2 -8
  32. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +6 -7
  33. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
  34. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +23 -28
  35. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -23
  36. package/dist/cjs/node/runtime/utils.js +1 -2
  37. package/dist/cjs/node/shared/assertPluginManifest.js +1 -4
  38. package/dist/cjs/node/shared/assertV1Design.js +26 -0
  39. package/dist/cjs/node/shared/{getClientEntryFilePath.js → getClientEntry.js} +3 -3
  40. package/dist/cjs/node/shared/prependEntriesDir.js +13 -0
  41. package/dist/cjs/node/shared/utils.js +2 -0
  42. package/dist/cjs/node/shared/virtual-files/virtualFileImportUserCode.js +1 -0
  43. package/dist/cjs/shared/hooks/getHook.js +1 -1
  44. package/dist/cjs/shared/page-configs/helpers/getConfigValue.js +1 -0
  45. package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +1 -1
  46. package/dist/cjs/shared/route/abort.js +1 -0
  47. package/dist/cjs/shared/route/resolvePrecedence.js +1 -0
  48. package/dist/cjs/utils/{nodeEnv.js → assertNodeEnv.js} +3 -0
  49. package/dist/cjs/utils/formatHintLog.js +1 -0
  50. package/dist/cjs/utils/hasProp.js +1 -0
  51. package/dist/cjs/utils/isScriptFile.js +15 -4
  52. package/dist/cjs/utils/projectInfo.js +1 -1
  53. package/dist/esm/__internal/index.js +1 -1
  54. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +20 -14
  55. package/dist/esm/client/shared/getPageContextProxyForUser.js +19 -2
  56. package/dist/esm/client/shared/loadUserFilesClientSide.js +1 -0
  57. package/dist/esm/node/plugin/index.js +0 -2
  58. package/dist/esm/node/plugin/plugins/buildConfig.js +40 -36
  59. package/dist/esm/node/plugin/plugins/config/index.js +2 -7
  60. package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.d.ts +1 -2
  61. package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -8
  62. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.d.ts +1 -2
  63. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +2 -19
  64. package/dist/esm/node/plugin/plugins/devConfig/index.js +2 -4
  65. package/dist/esm/node/plugin/plugins/envVars.js +6 -2
  66. package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +11 -23
  67. package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
  68. package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.d.ts +1 -2
  69. package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.js +2 -19
  70. package/dist/esm/node/plugin/plugins/importBuild/index.js +1 -1
  71. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +31 -97
  72. package/dist/esm/node/plugin/plugins/importUserCode/index.js +8 -8
  73. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +1 -9
  74. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -0
  75. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.d.ts +3 -3
  76. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +1 -1
  77. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.d.ts +1 -1
  78. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +4 -4
  79. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +1 -1
  80. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.d.ts +1 -13
  81. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +35 -36
  82. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +1 -1
  83. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +111 -106
  84. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +3 -3
  85. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +39 -33
  86. package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -15
  87. package/dist/esm/node/plugin/shared/rollupSourceMap.d.ts +14 -0
  88. package/dist/esm/node/plugin/shared/rollupSourceMap.js +17 -0
  89. package/dist/esm/node/plugin/utils.d.ts +0 -1
  90. package/dist/esm/node/plugin/utils.js +0 -1
  91. package/dist/esm/node/prerender/runPrerender.d.ts +3 -3
  92. package/dist/esm/node/prerender/runPrerender.js +4 -3
  93. package/dist/esm/node/prerender/utils.d.ts +1 -1
  94. package/dist/esm/node/prerender/utils.js +1 -1
  95. package/dist/esm/node/runtime/globalContext.d.ts +3 -10
  96. package/dist/esm/node/runtime/globalContext.js +7 -18
  97. package/dist/esm/node/runtime/html/serializePageContextClientSide.js +1 -0
  98. package/dist/esm/node/runtime/renderPage/analyzePage.js +2 -2
  99. package/dist/esm/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +2 -8
  100. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.d.ts +1 -1
  101. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +6 -7
  102. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +1 -1
  103. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
  104. package/dist/esm/node/runtime/renderPage/getPageAssets.js +24 -29
  105. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -24
  106. package/dist/esm/node/runtime/utils.d.ts +1 -2
  107. package/dist/esm/node/runtime/utils.js +1 -2
  108. package/dist/esm/node/shared/ViteManifest.d.ts +1 -0
  109. package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
  110. package/dist/esm/node/shared/assertPluginManifest.js +2 -5
  111. package/dist/esm/node/shared/assertV1Design.d.ts +4 -0
  112. package/dist/esm/node/shared/assertV1Design.js +23 -0
  113. package/dist/esm/node/shared/getClientEntry.d.ts +3 -0
  114. package/dist/esm/node/shared/{getClientEntryFilePath.js → getClientEntry.js} +2 -2
  115. package/dist/esm/node/shared/prependEntriesDir.d.ts +2 -0
  116. package/dist/esm/node/shared/prependEntriesDir.js +10 -0
  117. package/dist/esm/node/shared/utils.d.ts +2 -0
  118. package/dist/esm/node/shared/utils.js +2 -0
  119. package/dist/esm/node/shared/virtual-files/virtualFileImportUserCode.js +1 -0
  120. package/dist/esm/shared/ConfigVike.d.ts +0 -27
  121. package/dist/esm/shared/hooks/getHook.js +2 -2
  122. package/dist/esm/shared/page-configs/Config.d.ts +5 -0
  123. package/dist/esm/shared/page-configs/PageConfig.d.ts +2 -4
  124. package/dist/esm/shared/page-configs/helpers/getConfigValue.js +1 -0
  125. package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +1 -1
  126. package/dist/esm/shared/route/abort.js +1 -0
  127. package/dist/esm/shared/route/resolvePrecedence.js +1 -0
  128. package/dist/esm/utils/{nodeEnv.js → assertNodeEnv.js} +3 -0
  129. package/dist/esm/utils/debug.d.ts +1 -1
  130. package/dist/esm/utils/formatHintLog.js +1 -0
  131. package/dist/esm/utils/hasProp.js +1 -0
  132. package/dist/esm/utils/isScriptFile.d.ts +3 -1
  133. package/dist/esm/utils/isScriptFile.js +14 -3
  134. package/dist/esm/utils/projectInfo.d.ts +2 -2
  135. package/dist/esm/utils/projectInfo.js +1 -1
  136. package/package.json +4 -3
  137. package/dist/cjs/node/plugin/plugins/config/findConfigVikeFromStemPackages.js +0 -27
  138. package/dist/cjs/node/plugin/plugins/config/resolveExtensions.js +0 -107
  139. package/dist/cjs/node/plugin/plugins/config/stemUtils.js +0 -85
  140. package/dist/cjs/node/plugin/plugins/extensionsAssets.js +0 -101
  141. package/dist/cjs/node/plugin/shared/removeSourceMap.js +0 -12
  142. package/dist/cjs/utils/getDependencyPackageJson.js +0 -91
  143. package/dist/cjs/utils/isStemPackageName.js +0 -14
  144. package/dist/esm/node/plugin/plugins/config/findConfigVikeFromStemPackages.d.ts +0 -3
  145. package/dist/esm/node/plugin/plugins/config/findConfigVikeFromStemPackages.js +0 -24
  146. package/dist/esm/node/plugin/plugins/config/resolveExtensions.d.ts +0 -4
  147. package/dist/esm/node/plugin/plugins/config/resolveExtensions.js +0 -101
  148. package/dist/esm/node/plugin/plugins/config/stemUtils.d.ts +0 -8
  149. package/dist/esm/node/plugin/plugins/config/stemUtils.js +0 -79
  150. package/dist/esm/node/plugin/plugins/extensionsAssets.d.ts +0 -3
  151. package/dist/esm/node/plugin/plugins/extensionsAssets.js +0 -95
  152. package/dist/esm/node/plugin/shared/removeSourceMap.d.ts +0 -7
  153. package/dist/esm/node/plugin/shared/removeSourceMap.js +0 -9
  154. package/dist/esm/node/shared/getClientEntryFilePath.d.ts +0 -3
  155. package/dist/esm/utils/getDependencyPackageJson.d.ts +0 -6
  156. package/dist/esm/utils/getDependencyPackageJson.js +0 -85
  157. package/dist/esm/utils/isStemPackageName.d.ts +0 -1
  158. package/dist/esm/utils/isStemPackageName.js +0 -10
  159. /package/dist/esm/utils/{nodeEnv.d.ts → assertNodeEnv.d.ts} +0 -0
@@ -2,7 +2,7 @@ export { buildConfig };
2
2
  export { assertRollupInput };
3
3
  export { analyzeClientEntries };
4
4
  export { manifestTempFile };
5
- import { assert, resolveOutDir, viteIsSSR, getFilePathAbsolute, addOnBeforeLogHook, removeFileExtention, unique, assertPosixPath, assertUsage, injectRollupInputs, normalizeRollupInput, assertNodeEnvIsNotDev, getOutDirs } from '../utils.js';
5
+ import { assert, resolveOutDir, viteIsSSR, getFilePathAbsolute, addOnBeforeLogHook, removeFileExtention, unique, assertPosixPath, assertUsage, injectRollupInputs, normalizeRollupInput, assertNodeEnvIsNotDev, getOutDirs, isNpmPackageImport } from '../utils.js';
6
6
  import { getVikeConfig, isV1Design } from './importUserCode/v1-design/getVikeConfig.js';
7
7
  import { getConfigValue } from '../../../shared/page-configs/helpers.js';
8
8
  import { findPageFiles } from '../shared/findPageFiles.js';
@@ -10,11 +10,12 @@ import { getConfigVike } from '../../shared/getConfigVike.js';
10
10
  import { getVirtualFileIdPageConfigValuesAll } from '../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
11
11
  import { extractAssetsAddQuery } from '../../shared/extractAssetsQuery.js';
12
12
  import { createRequire } from 'module';
13
- import { getClientEntryFilePath } from '../../shared/getClientEntryFilePath.js';
13
+ import { getClientEntry } from '../../shared/getClientEntry.js';
14
14
  import fs from 'fs/promises';
15
15
  import path from 'path';
16
16
  import { fixServerAssets, fixServerAssets_isEnabled } from './buildConfig/fixServerAssets.js';
17
17
  import { set_constant_ASSETS_MAP } from './importBuild/index.js';
18
+ import { prependEntriesDir } from '../../shared/prependEntriesDir.js';
18
19
  // @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
19
20
  const importMetaUrl = import.meta.url;
20
21
  const require_ = createRequire(importMetaUrl);
@@ -62,24 +63,28 @@ function buildConfig() {
62
63
  buildStart() {
63
64
  assertNodeEnv();
64
65
  },
65
- async writeBundle(options, bundle) {
66
- if (isSsrBuild) {
67
- // Ideally we'd move dist/_temp_manifest.json to dist/server/client-assets.json instead of dist/assets.json
68
- // - But we can't because there is no guarentee whether dist/server/ is generated before or after dist/client/ (generating dist/server/ after dist/client/ erases dist/server/client-assets.json)
69
- // - We'll able to do so once we replace `$ vite build` with `$ vike build`
70
- const assetsJsonFilePath = path.posix.join(outDirs.outDirRoot, 'assets.json');
71
- const clientManifestFilePath = path.posix.join(outDirs.outDirClient, manifestTempFile);
72
- const serverManifestFilePath = path.posix.join(outDirs.outDirServer, manifestTempFile);
73
- if (!isServerAssetsFixEnabled) {
74
- await fs.copyFile(clientManifestFilePath, assetsJsonFilePath);
75
- }
76
- else {
77
- const clientManifestMod = await fixServerAssets(outDirs);
78
- await fs.writeFile(assetsJsonFilePath, JSON.stringify(clientManifestMod, null, 2), 'utf-8');
66
+ writeBundle: {
67
+ order: 'post',
68
+ sequential: true,
69
+ async handler(options, bundle) {
70
+ if (isSsrBuild) {
71
+ // Ideally we'd move dist/_temp_manifest.json to dist/server/client-assets.json instead of dist/assets.json
72
+ // - But we can't because there is no guarentee whether dist/server/ is generated before or after dist/client/ (generating dist/server/ after dist/client/ erases dist/server/client-assets.json)
73
+ // - We'll able to do so once we replace `$ vite build` with `$ vike build`
74
+ const assetsJsonFilePath = path.posix.join(outDirs.outDirRoot, 'assets.json');
75
+ const clientManifestFilePath = path.posix.join(outDirs.outDirClient, manifestTempFile);
76
+ const serverManifestFilePath = path.posix.join(outDirs.outDirServer, manifestTempFile);
77
+ if (!isServerAssetsFixEnabled) {
78
+ await fs.copyFile(clientManifestFilePath, assetsJsonFilePath);
79
+ }
80
+ else {
81
+ const clientManifestMod = await fixServerAssets(outDirs);
82
+ await fs.writeFile(assetsJsonFilePath, JSON.stringify(clientManifestMod, null, 2), 'utf-8');
83
+ }
84
+ await fs.rm(clientManifestFilePath);
85
+ await fs.rm(serverManifestFilePath);
86
+ await set_constant_ASSETS_MAP(options, bundle);
79
87
  }
80
- await fs.rm(clientManifestFilePath);
81
- await fs.rm(serverManifestFilePath);
82
- await set_constant_ASSETS_MAP(options, bundle);
83
88
  }
84
89
  }
85
90
  };
@@ -132,7 +137,7 @@ function analyzeClientEntries(pageConfigs, config) {
132
137
  let hasClientRouting = false;
133
138
  let hasServerRouting = false;
134
139
  let clientEntries = {};
135
- let clientFilePaths = [];
140
+ let clientEntryList = [];
136
141
  pageConfigs.forEach((pageConfig) => {
137
142
  const configValue = getConfigValue(pageConfig, 'clientRouting', 'boolean');
138
143
  if (configValue?.value) {
@@ -147,15 +152,15 @@ function analyzeClientEntries(pageConfigs, config) {
147
152
  clientEntries[entryName] = entryTarget;
148
153
  }
149
154
  {
150
- const clientFilePath = getClientEntryFilePath(pageConfig);
151
- if (clientFilePath) {
152
- clientFilePaths.push(clientFilePath);
155
+ const clientEntry = getClientEntry(pageConfig);
156
+ if (clientEntry) {
157
+ clientEntryList.push(clientEntry);
153
158
  }
154
159
  }
155
160
  });
156
- clientFilePaths = unique(clientFilePaths);
157
- clientFilePaths.forEach((pageFile) => {
158
- const { entryName, entryTarget } = getEntryFromFilePath(pageFile, config);
161
+ clientEntryList = unique(clientEntryList);
162
+ clientEntryList.forEach((clientEntry) => {
163
+ const { entryName, entryTarget } = getEntryFromClientEntry(clientEntry, config);
159
164
  clientEntries[entryName] = entryTarget;
160
165
  });
161
166
  return { hasClientRouting, hasServerRouting, clientEntries };
@@ -177,12 +182,18 @@ async function getPageFileEntries(config, includeAssetsImportedByServer) {
177
182
  assert(includeAssetsImportedByServer);
178
183
  addExtractAssetsQuery = true;
179
184
  }
180
- const { entryName, entryTarget } = getEntryFromFilePath(pageFile, config, addExtractAssetsQuery);
185
+ const { entryName, entryTarget } = getEntryFromClientEntry(pageFile, config, addExtractAssetsQuery);
181
186
  pageFileEntries[entryName] = entryTarget;
182
187
  });
183
188
  return pageFileEntries;
184
189
  }
185
- function getEntryFromFilePath(filePath, config, addExtractAssetsQuery) {
190
+ function getEntryFromClientEntry(clientEntry, config, addExtractAssetsQuery) {
191
+ if (isNpmPackageImport(clientEntry)) {
192
+ const entryTarget = clientEntry;
193
+ const entryName = prependEntriesDir(clientEntry);
194
+ return { entryName, entryTarget };
195
+ }
196
+ const filePath = clientEntry;
186
197
  assertPosixPath(filePath);
187
198
  assert(filePath.startsWith('/'));
188
199
  let entryTarget = getFilePathAbsolute(filePath, config);
@@ -202,14 +213,6 @@ function getEntryFromPageConfig(pageConfig, isForClientSide) {
202
213
  entryName = prependEntriesDir(entryName);
203
214
  return { entryName, entryTarget };
204
215
  }
205
- function prependEntriesDir(entryName) {
206
- if (entryName.startsWith('/')) {
207
- entryName = entryName.slice(1);
208
- }
209
- assert(!entryName.startsWith('/'));
210
- entryName = `entries/${entryName}`;
211
- return entryName;
212
- }
213
216
  function resolve(filePath) {
214
217
  assert(filePath.startsWith('dist/'));
215
218
  // [RELATIVE_PATH_FROM_DIST] Current directory: node_modules/vike/dist/esm/node/plugin/plugins/
@@ -229,6 +232,7 @@ function addLogHook() {
229
232
  });
230
233
  // Exhaustive list extracted from writeLine() calls at https://github.com/vitejs/vite/blob/193d55c7b9cbfec5b79ebfca276d4a721e7de14d/packages/vite/src/node/plugins/reporter.ts
231
234
  // prettier-ignore
235
+ // biome-ignore format:
232
236
  const viteTransientLogs = [
233
237
  'transforming (',
234
238
  'rendering chunks (',
@@ -1,9 +1,7 @@
1
1
  export { resolveVikeConfig };
2
2
  import { assertVikeConfig } from './assertVikeConfig.js';
3
3
  import { isDev2 } from '../../utils.js';
4
- import { findConfigVikeFromStemPackages } from './findConfigVikeFromStemPackages.js';
5
4
  import { pickFirst } from './pickFirst.js';
6
- import { resolveExtensions } from './resolveExtensions.js';
7
5
  import { resolveBase } from './resolveBase.js';
8
6
  import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
9
7
  import pc from '@brillout/picocolors';
@@ -21,10 +19,8 @@ function resolveVikeConfig(vikeConfig) {
21
19
  async function getConfigVikPromise(vikeConfig, config) {
22
20
  const fromPluginOptions = (vikeConfig ?? {});
23
21
  const fromViteConfig = (config.vike ?? {});
24
- const fromStemPackages = await findConfigVikeFromStemPackages(config.root);
25
- const configs = [fromPluginOptions, ...fromStemPackages, fromViteConfig];
26
- const extensions = resolveExtensions(configs, config);
27
- const { globalVikeConfig: fromPlusConfigFile } = await getVikeConfig(config, isDev2(config), false, extensions);
22
+ const configs = [fromPluginOptions, fromViteConfig];
23
+ const { globalVikeConfig: fromPlusConfigFile } = await getVikeConfig(config, isDev2(config), false);
28
24
  configs.push(fromPlusConfigFile);
29
25
  assertVikeConfig(fromPlusConfigFile, ({ prop, errMsg }) => {
30
26
  // TODO: add config file path ?
@@ -36,7 +32,6 @@ async function getConfigVikPromise(vikeConfig, config) {
36
32
  const { baseServer, baseAssets } = resolveBase(configs, config);
37
33
  const configVike = {
38
34
  disableAutoFullBuild: pickFirst(configs.map((c) => c.disableAutoFullBuild)) ?? null,
39
- extensions,
40
35
  prerender: resolvePrerenderOptions(configs),
41
36
  includeAssetsImportedByServer: pickFirst(configs.map((c) => c.includeAssetsImportedByServer)) ?? true,
42
37
  baseServer,
@@ -1,4 +1,3 @@
1
1
  export { determineFsAllowList };
2
2
  import type { ResolvedConfig } from 'vite';
3
- import type { ConfigVikeResolved } from '../../../../shared/ConfigVike.js';
4
- declare function determineFsAllowList(config: ResolvedConfig, configVike: ConfigVikeResolved): Promise<void>;
3
+ declare function determineFsAllowList(config: ResolvedConfig): Promise<void>;
@@ -1,7 +1,6 @@
1
1
  export { determineFsAllowList };
2
2
  import { searchForWorkspaceRoot } from 'vite';
3
3
  import path from 'path';
4
- import fs from 'fs';
5
4
  import { assert } from '../../utils.js';
6
5
  import { createRequire } from 'module';
7
6
  import { dirname } from 'path';
@@ -10,7 +9,7 @@ import { fileURLToPath } from 'url';
10
9
  const importMetaUrl = import.meta.url;
11
10
  const require_ = createRequire(importMetaUrl);
12
11
  const __dirname_ = dirname(fileURLToPath(importMetaUrl));
13
- async function determineFsAllowList(config, configVike) {
12
+ async function determineFsAllowList(config) {
14
13
  const fsAllow = config.server.fs.allow;
15
14
  // fsAllow should already contain searchForWorkspaceRoot()
16
15
  assert(fsAllow.length >= 1);
@@ -27,10 +26,4 @@ async function determineFsAllowList(config, configVike) {
27
26
  require_.resolve(`${vikeRoot}/dist/esm/node/plugin/plugins/devConfig/index.js`);
28
27
  fsAllow.push(vikeRoot);
29
28
  }
30
- // Add Vike extensions, e.g. node_modules/stem-react/
31
- configVike.extensions.forEach(({ npmPackageRootDir }) => {
32
- const npmPackageRootDirReal = fs.realpathSync(npmPackageRootDir);
33
- fsAllow.push(npmPackageRootDir);
34
- fsAllow.push(npmPackageRootDirReal);
35
- });
36
29
  }
@@ -1,4 +1,3 @@
1
1
  export { determineOptimizeDeps };
2
2
  import type { ResolvedConfig } from 'vite';
3
- import { ConfigVikeResolved } from '../../../../shared/ConfigVike.js';
4
- declare function determineOptimizeDeps(config: ResolvedConfig, configVike: ConfigVikeResolved, isDev: true): Promise<void>;
3
+ declare function determineOptimizeDeps(config: ResolvedConfig, isDev: true): Promise<void>;
@@ -1,11 +1,11 @@
1
1
  export { determineOptimizeDeps };
2
2
  import { findPageFiles } from '../../shared/findPageFiles.js';
3
- import { assert, getFilePathAbsolute, isNotNullish, isNpmPackageImport, unique } from '../../utils.js';
3
+ import { assert, getFilePathAbsolute, isNpmPackageImport, unique } from '../../utils.js';
4
4
  import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
5
5
  import { getConfigValueSourcesNotOverriden } from '../../shared/getConfigValueSourcesNotOverriden.js';
6
6
  import { analyzeClientEntries } from '../buildConfig.js';
7
7
  import { virtualFileIdImportUserCodeClientCR, virtualFileIdImportUserCodeClientSR } from '../../../shared/virtual-files/virtualFileImportUserCode.js';
8
- async function determineOptimizeDeps(config, configVike, isDev) {
8
+ async function determineOptimizeDeps(config, isDev) {
9
9
  const { pageConfigs } = await getVikeConfig(config, isDev);
10
10
  const { entries, include } = await getPageDeps(config, pageConfigs, isDev);
11
11
  {
@@ -16,7 +16,6 @@ async function determineOptimizeDeps(config, configVike, isDev) {
16
16
  const entriesVirtualFiles = getVirtualFiles(config, pageConfigs);
17
17
  entries.push(...entriesVirtualFiles);
18
18
  }
19
- include.push(...getExtensionsDeps(configVike));
20
19
  /* Other Vite plugins may populate optimizeDeps, e.g. Cypress: https://github.com/vikejs/vike/issues/386
21
20
  assert(config.optimizeDeps.entries === undefined)
22
21
  */
@@ -88,22 +87,6 @@ function getVirtualFiles(config, pageConfigs) {
88
87
  entriesVirtualFiles.push(virtualFileIdImportUserCodeClientSR);
89
88
  return entriesVirtualFiles;
90
89
  }
91
- function getExtensionsDeps(configVike) {
92
- return [
93
- /* Doesn't work since `pageConfigsSrcDir` is a directory. We could make it work by using find-glob.
94
- ...configVike.extensions
95
- .map(({ pageConfigsSrcDir }) => pageConfigsSrcDir)
96
- .flat()
97
- .filter(isNotNullish),
98
- //*/
99
- ...configVike.extensions
100
- .map(({ pageConfigsDistFiles }) => pageConfigsDistFiles)
101
- .flat()
102
- .filter(isNotNullish)
103
- .filter(({ importPath }) => !importPath.endsWith('.css'))
104
- .map(({ importPath }) => importPath)
105
- ];
106
- }
107
90
  function normalizeEntries(entries) {
108
91
  if (Array.isArray(entries))
109
92
  return entries;
@@ -1,7 +1,6 @@
1
1
  export { devConfig };
2
2
  import { determineOptimizeDeps } from './determineOptimizeDeps.js';
3
3
  import { determineFsAllowList } from './determineFsAllowList.js';
4
- import { getConfigVike } from '../../../shared/getConfigVike.js';
5
4
  import { addSsrMiddleware } from '../../shared/addSsrMiddleware.js';
6
5
  import { markEnvAsViteDev } from '../../utils.js';
7
6
  import { improveViteLogs } from '../../shared/loggerVite.js';
@@ -55,9 +54,8 @@ function devConfig() {
55
54
  },
56
55
  async configResolved(config_) {
57
56
  config = config_;
58
- const configVike = await getConfigVike(config);
59
- await determineOptimizeDeps(config, configVike, isDev);
60
- await determineFsAllowList(config, configVike);
57
+ await determineOptimizeDeps(config, isDev);
58
+ await determineFsAllowList(config);
61
59
  if (!isErrorDebug()) {
62
60
  await installHttpRequestAsyncStore();
63
61
  improveViteLogs(config);
@@ -3,6 +3,7 @@ export { envVarsPlugin };
3
3
  export { applyEnvVar };
4
4
  import { loadEnv } from 'vite';
5
5
  import { assert, assertPosixPath, assertUsage, assertWarning, escapeRegex, getFilePathRelativeToUserRootDir, lowerFirst } from '../utils.js';
6
+ import { sourceMapPassthrough } from '../shared/rollupSourceMap.js';
6
7
  function envVarsPlugin() {
7
8
  let envsAll;
8
9
  let config;
@@ -62,8 +63,11 @@ function envVarsPlugin() {
62
63
  // Apply
63
64
  code = applyEnvVar(envName, envVal, code);
64
65
  });
65
- // No need for low-resolution source map since line numbers didn't change. (Does Vite do high-resolution column numbers source mapping?)
66
- return code;
66
+ // Line numbers didn't change.
67
+ // - We only break the column number of a couple of lines, wich is acceptable.
68
+ // - Anyways, I'm not even sure Vite supports high-resolution column number source mapping.
69
+ const ret = sourceMapPassthrough(code);
70
+ return ret;
67
71
  }
68
72
  };
69
73
  }
@@ -11,10 +11,11 @@ import { extractAssetsAddQuery } from '../../shared/extractAssetsQuery.js';
11
11
  import { getConfigVike } from '../../shared/getConfigVike.js';
12
12
  import { isAsset } from '../shared/isAsset.js';
13
13
  import { getImportStatements } from '../shared/parseEsModule.js';
14
- import { removeSourceMap } from '../shared/removeSourceMap.js';
14
+ import { sourceMapRemove } from '../shared/rollupSourceMap.js';
15
15
  import pc from '@brillout/picocolors';
16
16
  import { fixServerAssets_isEnabled } from './buildConfig/fixServerAssets.js';
17
- import { isV1Design } from './importUserCode/v1-design/getVikeConfig.js';
17
+ import { getVikeConfig, isV1Design } from './importUserCode/v1-design/getVikeConfig.js';
18
+ import { assertV1Design } from '../../shared/assertV1Design.js';
18
19
  const extractAssetsRE = /(\?|&)extractAssets(?:&|$)/;
19
20
  const rawRE = /(\?|&)raw(?:&|$)/;
20
21
  const urlRE = /(\?|&)url(?:&|$)/;
@@ -25,6 +26,7 @@ const debugEnabled = isDebugEnabled(debugNamespace);
25
26
  function extractAssetsPlugin() {
26
27
  let config;
27
28
  let configVike;
29
+ let vikeConfig;
28
30
  let isServerAssetsFixEnabled;
29
31
  return [
30
32
  // This plugin removes all JavaScript from server-side only code, so that only CSS imports remains. (And also satic files imports e.g. `import logoURL from './logo.svg.js'`).
@@ -37,14 +39,18 @@ function extractAssetsPlugin() {
37
39
  if (!extractAssetsRE.test(id)) {
38
40
  return;
39
41
  }
40
- assert(!isServerAssetsFixEnabled);
42
+ if (isServerAssetsFixEnabled) {
43
+ // I'm guessing isServerAssetsFixEnabled can only be true when mixing both designs: https://github.com/vikejs/vike/issues/1480
44
+ assertV1Design(true, vikeConfig.pageConfigs);
45
+ assert(false);
46
+ }
41
47
  assert(configVike.includeAssetsImportedByServer);
42
48
  assert(!viteIsSSR_options(options));
43
49
  const importStatements = await getImportStatements(src);
44
50
  const moduleNames = getImportedModules(importStatements);
45
51
  const code = moduleNames.map((moduleName) => `import '${moduleName}';`).join('\n');
46
52
  debugTransformResult(id, code, importStatements);
47
- return removeSourceMap(code);
53
+ return sourceMapRemove(code);
48
54
  }
49
55
  },
50
56
  // This plugin appends `?extractAssets` to module IDs
@@ -95,25 +101,6 @@ function extractAssetsPlugin() {
95
101
  if (!isScriptFile(file)) {
96
102
  return emptyModule(file, importer);
97
103
  }
98
- // If the dependency is a Vike extension and has `configVike.extension[number].pageConfigsSrcDir`, then include its CSS
99
- if (configVike.extensions
100
- .filter(({ pageConfigsSrcDir }) => pageConfigsSrcDir !== null)
101
- .some(({ npmPackageName }) => {
102
- const check1 = source === npmPackageName ||
103
- source.startsWith(npmPackageName + '/') ||
104
- // Include relative imports within modules of `npmPackageName`. (This only works for dependencies: user may use import path aliases.)
105
- source.startsWith('.');
106
- // This doesn't work for linked dependencies
107
- const check2 = file.includes('node_modules/' + npmPackageName + '/') ||
108
- file.includes('node_modules\\' + npmPackageName + '\\');
109
- if (check1) {
110
- return true;
111
- }
112
- assert(!check2);
113
- return false;
114
- })) {
115
- return appendExtractAssetsQuery(file, importer);
116
- }
117
104
  // If the import path resolves to a file in `node_modules/`, we ignore that file:
118
105
  // - Direct CSS dependencies are included though, such as `import 'bootstrap/theme/dark.css'`. (Because the above if-branch for CSS files will add the file.)
119
106
  // - Loading CSS from a library (living in `node_modules/`) in a non-direct way is non-standard; we can safely not support this case. (I'm not aware of any library that does this.)
@@ -135,6 +122,7 @@ function extractAssetsPlugin() {
135
122
  async configResolved(config_) {
136
123
  configVike = await getConfigVike(config_);
137
124
  config = config_;
125
+ vikeConfig = await getVikeConfig(config, false);
138
126
  isServerAssetsFixEnabled = fixServerAssets_isEnabled() && (await isV1Design(config, false));
139
127
  },
140
128
  load(id) {
@@ -3,7 +3,7 @@ export { isUsingClientRouter };
3
3
  export { extractExportNamesRE };
4
4
  import { assert, getFileExtension, viteIsSSR_options, createDebugger, isDebugEnabled, getGlobalObject, assertUsage } from '../utils.js';
5
5
  import { getExportNames } from '../shared/parseEsModule.js';
6
- import { removeSourceMap } from '../shared/removeSourceMap.js';
6
+ import { sourceMapRemove } from '../shared/rollupSourceMap.js';
7
7
  const extractExportNamesRE = /(\?|&)extractExportNames(?:&|$)/;
8
8
  const debugNamespace = 'vike:extractExportNames';
9
9
  const debug = createDebugger(debugNamespace);
@@ -38,7 +38,7 @@ async function getExtractExportNamesCode(src, isClientSide, isProduction, id) {
38
38
  globalObject.usesClientRouter = true;
39
39
  }
40
40
  const code = getCode(exportNames, wildcardReExports, isClientSide, isProduction, id);
41
- return removeSourceMap(code);
41
+ return sourceMapRemove(code);
42
42
  }
43
43
  function getCode(exportNames, wildcardReExports, isClientSide, isProduction, id) {
44
44
  let code = '';
@@ -1,5 +1,4 @@
1
1
  export { getVikeManifest };
2
- import { ResolvedConfig } from 'vite';
3
2
  import { type PluginManifest } from '../../../shared/assertPluginManifest.js';
4
3
  import type { ConfigVikeResolved } from '../../../../shared/ConfigVike.js';
5
- declare function getVikeManifest(config: ResolvedConfig, configVike: ConfigVikeResolved): PluginManifest;
4
+ declare function getVikeManifest(configVike: ConfigVikeResolved): PluginManifest;
@@ -1,32 +1,15 @@
1
1
  export { getVikeManifest };
2
- import { projectInfo, toPosixPath, assertPosixPath, isNotNullish } from '../../utils.js';
2
+ import { projectInfo } from '../../utils.js';
3
3
  import { assertPluginManifest } from '../../../shared/assertPluginManifest.js';
4
4
  import { isUsingClientRouter } from '../extractExportNamesPlugin.js';
5
- import path from 'path';
6
5
  import { getRuntimeManifest } from '../../../runtime/globalContext.js';
7
- function getVikeManifest(config, configVike) {
6
+ function getVikeManifest(configVike) {
8
7
  const runtimeManifest = getRuntimeManifest(configVike);
9
8
  const manifest = {
10
9
  version: projectInfo.projectVersion,
11
10
  usesClientRouter: isUsingClientRouter(), // TODO/v1-release: remove
12
- manifestKeyMap: getManifestKeyMap(configVike, config),
13
11
  ...runtimeManifest
14
12
  };
15
13
  assertPluginManifest(manifest);
16
14
  return manifest;
17
15
  }
18
- function getManifestKeyMap(configVike, config) {
19
- const manifestKeyMap = {};
20
- configVike.extensions
21
- .map(({ pageConfigsDistFiles }) => pageConfigsDistFiles)
22
- .flat()
23
- .filter(isNotNullish)
24
- .forEach(({ importPath, filePath }) => {
25
- // Recreating https://github.com/vitejs/vite/blob/8158ece72b66307e7b607b98496891610ca70ea2/packages/vite/src/node/plugins/manifest.ts#L38
26
- const filePathRelative = path.posix.relative(config.root, toPosixPath(filePath));
27
- assertPosixPath(filePathRelative);
28
- assertPosixPath(importPath);
29
- manifestKeyMap[importPath] = filePathRelative;
30
- });
31
- return manifestKeyMap;
32
- }
@@ -34,7 +34,7 @@ function importBuild() {
34
34
  }
35
35
  function getEntryCode(config, configVike) {
36
36
  const importPath = getImportPath(config);
37
- const vikeManifest = getVikeManifest(config, configVike);
37
+ const vikeManifest = getVikeManifest(configVike);
38
38
  const importerCode = [
39
39
  ` import { setImportBuildGetters } from '${importPath}';`,
40
40
  ` import * as pageFiles from '${virtualFileIdImportUserCodeServer}';`,