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.
- package/dist/cjs/__internal/index.js +2 -2
- package/dist/cjs/node/plugin/index.js +0 -2
- package/dist/cjs/node/plugin/plugins/buildConfig.js +41 -37
- package/dist/cjs/node/plugin/plugins/config/index.js +2 -7
- package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -8
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -18
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +2 -4
- package/dist/cjs/node/plugin/plugins/envVars.js +6 -2
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +10 -22
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
- package/dist/cjs/node/plugin/plugins/importBuild/getVikeManifest.js +1 -21
- package/dist/cjs/node/plugin/plugins/importBuild/index.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +29 -95
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +8 -8
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +1 -9
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +4 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +35 -36
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +109 -104
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +39 -33
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +0 -14
- package/dist/cjs/node/plugin/shared/rollupSourceMap.js +20 -0
- package/dist/cjs/node/plugin/utils.js +0 -1
- package/dist/cjs/node/prerender/runPrerender.js +3 -2
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +8 -19
- package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +1 -0
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
- package/dist/cjs/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +2 -8
- package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +6 -7
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +23 -28
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -23
- package/dist/cjs/node/runtime/utils.js +1 -2
- package/dist/cjs/node/shared/assertPluginManifest.js +1 -4
- package/dist/cjs/node/shared/assertV1Design.js +26 -0
- package/dist/cjs/node/shared/{getClientEntryFilePath.js → getClientEntry.js} +3 -3
- package/dist/cjs/node/shared/prependEntriesDir.js +13 -0
- package/dist/cjs/node/shared/utils.js +2 -0
- package/dist/cjs/node/shared/virtual-files/virtualFileImportUserCode.js +1 -0
- package/dist/cjs/shared/hooks/getHook.js +1 -1
- package/dist/cjs/shared/page-configs/helpers/getConfigValue.js +1 -0
- package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +1 -1
- package/dist/cjs/shared/route/abort.js +1 -0
- package/dist/cjs/shared/route/resolvePrecedence.js +1 -0
- package/dist/cjs/utils/{nodeEnv.js → assertNodeEnv.js} +3 -0
- package/dist/cjs/utils/formatHintLog.js +1 -0
- package/dist/cjs/utils/hasProp.js +1 -0
- package/dist/cjs/utils/isScriptFile.js +15 -4
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/esm/__internal/index.js +1 -1
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +20 -14
- package/dist/esm/client/shared/getPageContextProxyForUser.js +19 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.js +1 -0
- package/dist/esm/node/plugin/index.js +0 -2
- package/dist/esm/node/plugin/plugins/buildConfig.js +40 -36
- package/dist/esm/node/plugin/plugins/config/index.js +2 -7
- package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.d.ts +1 -2
- package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -8
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.d.ts +1 -2
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +2 -19
- package/dist/esm/node/plugin/plugins/devConfig/index.js +2 -4
- package/dist/esm/node/plugin/plugins/envVars.js +6 -2
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +11 -23
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
- package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.d.ts +1 -2
- package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.js +2 -19
- package/dist/esm/node/plugin/plugins/importBuild/index.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +31 -97
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +8 -8
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +1 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.d.ts +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +4 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.d.ts +1 -13
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +35 -36
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +111 -106
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +39 -33
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -15
- package/dist/esm/node/plugin/shared/rollupSourceMap.d.ts +14 -0
- package/dist/esm/node/plugin/shared/rollupSourceMap.js +17 -0
- package/dist/esm/node/plugin/utils.d.ts +0 -1
- package/dist/esm/node/plugin/utils.js +0 -1
- package/dist/esm/node/prerender/runPrerender.d.ts +3 -3
- package/dist/esm/node/prerender/runPrerender.js +4 -3
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/globalContext.d.ts +3 -10
- package/dist/esm/node/runtime/globalContext.js +7 -18
- package/dist/esm/node/runtime/html/serializePageContextClientSide.js +1 -0
- package/dist/esm/node/runtime/renderPage/analyzePage.js +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +2 -8
- package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +6 -7
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +24 -29
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -24
- package/dist/esm/node/runtime/utils.d.ts +1 -2
- package/dist/esm/node/runtime/utils.js +1 -2
- package/dist/esm/node/shared/ViteManifest.d.ts +1 -0
- package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
- package/dist/esm/node/shared/assertPluginManifest.js +2 -5
- package/dist/esm/node/shared/assertV1Design.d.ts +4 -0
- package/dist/esm/node/shared/assertV1Design.js +23 -0
- package/dist/esm/node/shared/getClientEntry.d.ts +3 -0
- package/dist/esm/node/shared/{getClientEntryFilePath.js → getClientEntry.js} +2 -2
- package/dist/esm/node/shared/prependEntriesDir.d.ts +2 -0
- package/dist/esm/node/shared/prependEntriesDir.js +10 -0
- package/dist/esm/node/shared/utils.d.ts +2 -0
- package/dist/esm/node/shared/utils.js +2 -0
- package/dist/esm/node/shared/virtual-files/virtualFileImportUserCode.js +1 -0
- package/dist/esm/shared/ConfigVike.d.ts +0 -27
- package/dist/esm/shared/hooks/getHook.js +2 -2
- package/dist/esm/shared/page-configs/Config.d.ts +5 -0
- package/dist/esm/shared/page-configs/PageConfig.d.ts +2 -4
- package/dist/esm/shared/page-configs/helpers/getConfigValue.js +1 -0
- package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +1 -1
- package/dist/esm/shared/route/abort.js +1 -0
- package/dist/esm/shared/route/resolvePrecedence.js +1 -0
- package/dist/esm/utils/{nodeEnv.js → assertNodeEnv.js} +3 -0
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/formatHintLog.js +1 -0
- package/dist/esm/utils/hasProp.js +1 -0
- package/dist/esm/utils/isScriptFile.d.ts +3 -1
- package/dist/esm/utils/isScriptFile.js +14 -3
- package/dist/esm/utils/projectInfo.d.ts +2 -2
- package/dist/esm/utils/projectInfo.js +1 -1
- package/package.json +4 -3
- package/dist/cjs/node/plugin/plugins/config/findConfigVikeFromStemPackages.js +0 -27
- package/dist/cjs/node/plugin/plugins/config/resolveExtensions.js +0 -107
- package/dist/cjs/node/plugin/plugins/config/stemUtils.js +0 -85
- package/dist/cjs/node/plugin/plugins/extensionsAssets.js +0 -101
- package/dist/cjs/node/plugin/shared/removeSourceMap.js +0 -12
- package/dist/cjs/utils/getDependencyPackageJson.js +0 -91
- package/dist/cjs/utils/isStemPackageName.js +0 -14
- package/dist/esm/node/plugin/plugins/config/findConfigVikeFromStemPackages.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/config/findConfigVikeFromStemPackages.js +0 -24
- package/dist/esm/node/plugin/plugins/config/resolveExtensions.d.ts +0 -4
- package/dist/esm/node/plugin/plugins/config/resolveExtensions.js +0 -101
- package/dist/esm/node/plugin/plugins/config/stemUtils.d.ts +0 -8
- package/dist/esm/node/plugin/plugins/config/stemUtils.js +0 -79
- package/dist/esm/node/plugin/plugins/extensionsAssets.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/extensionsAssets.js +0 -95
- package/dist/esm/node/plugin/shared/removeSourceMap.d.ts +0 -7
- package/dist/esm/node/plugin/shared/removeSourceMap.js +0 -9
- package/dist/esm/node/shared/getClientEntryFilePath.d.ts +0 -3
- package/dist/esm/utils/getDependencyPackageJson.d.ts +0 -6
- package/dist/esm/utils/getDependencyPackageJson.js +0 -85
- package/dist/esm/utils/isStemPackageName.d.ts +0 -1
- package/dist/esm/utils/isStemPackageName.js +0 -10
- /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 {
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
|
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
|
|
151
|
-
if (
|
|
152
|
-
|
|
155
|
+
const clientEntry = getClientEntry(pageConfig);
|
|
156
|
+
if (clientEntry) {
|
|
157
|
+
clientEntryList.push(clientEntry);
|
|
153
158
|
}
|
|
154
159
|
}
|
|
155
160
|
});
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const { entryName, entryTarget } =
|
|
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 } =
|
|
185
|
+
const { entryName, entryTarget } = getEntryFromClientEntry(pageFile, config, addExtractAssetsQuery);
|
|
181
186
|
pageFileEntries[entryName] = entryTarget;
|
|
182
187
|
});
|
|
183
188
|
return pageFileEntries;
|
|
184
189
|
}
|
|
185
|
-
function
|
|
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
|
|
25
|
-
const
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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
|
-
|
|
59
|
-
await
|
|
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
|
-
//
|
|
66
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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 {
|
|
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
|
|
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(
|
|
4
|
+
declare function getVikeManifest(configVike: ConfigVikeResolved): PluginManifest;
|
|
@@ -1,32 +1,15 @@
|
|
|
1
1
|
export { getVikeManifest };
|
|
2
|
-
import { projectInfo
|
|
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(
|
|
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(
|
|
37
|
+
const vikeManifest = getVikeManifest(configVike);
|
|
38
38
|
const importerCode = [
|
|
39
39
|
` import { setImportBuildGetters } from '${importPath}';`,
|
|
40
40
|
` import * as pageFiles from '${virtualFileIdImportUserCodeServer}';`,
|