vike 0.4.223 → 0.4.224-commit-f0d0f8a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/node/api/build.js +4 -37
- package/dist/cjs/node/api/prepareViteApiCall.js +9 -3
- package/dist/cjs/node/plugin/index.js +8 -20
- package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -1
- package/dist/cjs/node/plugin/plugins/{buildConfig/fixServerAssets.js → build/handleAssetsManifest.js} +130 -52
- package/dist/cjs/node/plugin/plugins/build/pluginAutoFullBuild.js +145 -0
- package/dist/cjs/node/plugin/plugins/build/pluginBuildApp.js +52 -0
- package/dist/cjs/node/plugin/plugins/{buildConfig.js → build/pluginBuildConfig.js} +22 -84
- package/dist/cjs/node/plugin/plugins/{buildEntry/index.js → build/pluginBuildEntry.js} +9 -9
- package/dist/cjs/node/plugin/plugins/{distFileNames.js → build/pluginDistFileNames.js} +7 -7
- package/dist/cjs/node/plugin/plugins/{packageJsonFile.js → build/pluginDistPackageJsonFile.js} +6 -6
- package/dist/cjs/node/plugin/plugins/{suppressRollupWarning.js → build/pluginSuppressRollupWarning.js} +3 -3
- package/dist/cjs/node/plugin/plugins/build.js +21 -0
- package/dist/cjs/node/plugin/plugins/commonConfig.js +22 -4
- package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -1
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/cjs/node/plugin/plugins/envVars.js +2 -2
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +9 -9
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
- package/dist/cjs/node/plugin/plugins/fileEnv.js +5 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +2 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +7 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +16 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +50 -64
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +2 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +3 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +19 -7
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +277 -212
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/virtual-files/getVirtualFilePageConfigValuesAll.js +4 -4
- package/dist/cjs/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/cjs/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/cjs/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/cjs/node/plugin/shared/getOutDirs.js +8 -7
- package/dist/cjs/node/plugin/shared/isViteServerBuild.js +47 -0
- package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +1 -1
- package/dist/cjs/node/plugin/utils.js +1 -0
- package/dist/cjs/node/prerender/context.js +3 -8
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +30 -21
- package/dist/cjs/node/prerender/runPrerender.js +28 -30
- package/dist/cjs/node/prerender/utils.js +1 -0
- package/dist/cjs/node/runtime/html/stream.js +7 -0
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +13 -2
- package/dist/cjs/shared/getPageContextUrlComputed.js +1 -1
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +2 -5
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +3 -1
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +20 -9
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/debug.js +2 -1
- package/dist/cjs/utils/findFile.js +1 -1
- package/dist/cjs/utils/findPackageJson.js +1 -1
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +10 -4
- package/dist/cjs/utils/path.js +1 -0
- package/dist/cjs/utils/requireResolve.js +11 -4
- package/dist/cjs/utils/sorter.js +0 -3
- package/dist/esm/client/client-routing-runtime/index.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/index.js +1 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +8 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +10 -1
- package/dist/esm/node/api/build.js +4 -4
- package/dist/esm/node/api/prepareViteApiCall.js +9 -3
- package/dist/esm/node/plugin/index.d.ts +2 -1
- package/dist/esm/node/plugin/index.js +4 -17
- package/dist/esm/node/plugin/plugins/baseUrls.js +3 -1
- package/dist/esm/node/plugin/plugins/build/handleAssetsManifest.d.ts +18 -0
- package/dist/esm/node/plugin/plugins/{buildConfig/fixServerAssets.js → build/handleAssetsManifest.js} +131 -53
- package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.d.ts +5 -0
- package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.js +140 -0
- package/dist/esm/node/plugin/plugins/build/pluginBuildApp.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/build/pluginBuildApp.js +50 -0
- package/dist/esm/node/plugin/plugins/{buildConfig.d.ts → build/pluginBuildConfig.d.ts} +3 -3
- package/dist/esm/node/plugin/plugins/{buildConfig.js → build/pluginBuildConfig.js} +22 -81
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.d.ts +7 -0
- package/dist/esm/node/plugin/plugins/{buildEntry/index.js → build/pluginBuildEntry.js} +9 -9
- package/dist/esm/node/plugin/plugins/build/pluginDistFileNames.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{distFileNames.js → build/pluginDistFileNames.js} +7 -7
- package/dist/esm/node/plugin/plugins/build/pluginDistPackageJsonFile.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{packageJsonFile.js → build/pluginDistPackageJsonFile.js} +7 -6
- package/dist/esm/node/plugin/plugins/build/pluginSuppressRollupWarning.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/{suppressRollupWarning.js → build/pluginSuppressRollupWarning.js} +3 -3
- package/dist/esm/node/plugin/plugins/build.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/build.js +19 -0
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +16 -6
- package/dist/esm/node/plugin/plugins/commonConfig.js +22 -4
- package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -1
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -5
- package/dist/esm/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/esm/node/plugin/plugins/envVars.js +2 -2
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +10 -10
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
- package/dist/esm/node/plugin/plugins/fileEnv.js +5 -2
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +2 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +5 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +7 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +13 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +50 -64
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +2 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +3 -3
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +0 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +20 -8
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +8 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +279 -214
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/virtual-files/getVirtualFilePageConfigValuesAll.js +4 -4
- package/dist/esm/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/esm/node/plugin/shared/addSsrMiddleware.d.ts +1 -1
- package/dist/esm/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/esm/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/esm/node/plugin/shared/getHttpRequestAsyncStore.js +1 -3
- package/dist/esm/node/plugin/shared/getOutDirs.d.ts +2 -2
- package/dist/esm/node/plugin/shared/getOutDirs.js +8 -7
- package/dist/esm/node/plugin/shared/isViteServerBuild.d.ts +15 -0
- package/dist/esm/node/plugin/shared/isViteServerBuild.js +45 -0
- package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +1 -1
- package/dist/esm/node/plugin/utils.d.ts +1 -0
- package/dist/esm/node/plugin/utils.js +1 -0
- package/dist/esm/node/prerender/context.d.ts +0 -2
- package/dist/esm/node/prerender/context.js +4 -9
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +11 -6
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +31 -22
- package/dist/esm/node/prerender/runPrerender.d.ts +7 -25
- package/dist/esm/node/prerender/runPrerender.js +29 -31
- package/dist/esm/node/prerender/utils.d.ts +1 -0
- package/dist/esm/node/prerender/utils.js +1 -0
- package/dist/esm/node/runtime/globalContext.d.ts +3 -2
- package/dist/esm/node/runtime/html/stream.js +7 -0
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +13 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +165 -5
- package/dist/esm/shared/getPageContextUrlComputed.js +1 -1
- package/dist/esm/shared/page-configs/Config.d.ts +12 -2
- package/dist/esm/shared/page-configs/PageConfig.d.ts +5 -5
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +2 -5
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +3 -1
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +2 -0
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +20 -9
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/debug.js +2 -1
- package/dist/esm/utils/findFile.js +1 -1
- package/dist/esm/utils/findPackageJson.js +1 -1
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +8 -2
- package/dist/esm/utils/path.js +1 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/requireResolve.js +11 -4
- package/dist/esm/utils/sorter.d.ts +18 -5
- package/dist/esm/utils/sorter.js +0 -3
- package/package.json +9 -16
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +0 -119
- package/dist/cjs/node/plugin/plugins/buildApp.js +0 -76
- package/dist/cjs/node/plugin/plugins/removeRequireHookPlugin.js +0 -17
- package/dist/cjs/node/plugin/shared/getFullBuildInlineConfig.js +0 -20
- package/dist/cjs/node/plugin/shared/viteIsSSR.js +0 -31
- package/dist/esm/node/plugin/plugins/autoFullBuild.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +0 -114
- package/dist/esm/node/plugin/plugins/buildApp.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/buildApp.js +0 -74
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.d.ts +0 -20
- package/dist/esm/node/plugin/plugins/buildEntry/index.d.ts +0 -8
- package/dist/esm/node/plugin/plugins/distFileNames.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/packageJsonFile.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.d.ts +0 -3
- package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.js +0 -15
- package/dist/esm/node/plugin/plugins/suppressRollupWarning.d.ts +0 -3
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.d.ts +0 -2
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.js +0 -17
- package/dist/esm/node/plugin/shared/viteIsSSR.d.ts +0 -11
- package/dist/esm/node/plugin/shared/viteIsSSR.js +0 -29
- package/dist-cjs-fixup.mjs +0 -41
package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js
CHANGED
|
@@ -1,53 +1,45 @@
|
|
|
1
1
|
export { crawlPlusFiles };
|
|
2
2
|
export { isPlusFile };
|
|
3
3
|
export { getPlusFileValueConfigName };
|
|
4
|
-
import { assertPosixPath, assert, scriptFileExtensions, assertIsSingleModuleInstance, assertIsNotProductionRuntime, isVersionOrAbove, isScriptFile, scriptFileExtensionList, createDebugger, deepEqual, assertUsage } from '../../../../utils.js';
|
|
4
|
+
import { assertPosixPath, assert, scriptFileExtensions, assertIsSingleModuleInstance, assertIsNotProductionRuntime, isVersionOrAbove, isScriptFile, scriptFileExtensionList, createDebugger, deepEqual, assertUsage, assertFilePathAbsoluteFilesystem, assertWarning, hasProp, isNotNullish } from '../../../../utils.js';
|
|
5
5
|
import path from 'path';
|
|
6
|
-
import glob from '
|
|
6
|
+
import { glob } from 'tinyglobby';
|
|
7
7
|
import { exec } from 'child_process';
|
|
8
8
|
import { promisify } from 'util';
|
|
9
9
|
import { isTemporaryBuildFile } from './transpileAndExecuteFile.js';
|
|
10
10
|
import { getEnvVarObject } from '../../../../shared/getEnvVarObject.js';
|
|
11
|
+
import pc from '@brillout/picocolors';
|
|
12
|
+
import picomatch from 'picomatch';
|
|
13
|
+
import { ignorePatternsBuiltIn } from './crawlPlusFiles/ignorePatternsBuiltIn.js';
|
|
11
14
|
const execA = promisify(exec);
|
|
12
15
|
const debug = createDebugger('vike:crawl');
|
|
13
16
|
assertIsNotProductionRuntime();
|
|
14
17
|
assertIsSingleModuleInstance('getVikeConfig/crawlPlusFiles.ts');
|
|
15
18
|
let gitIsNotUsable = false;
|
|
16
|
-
async function crawlPlusFiles(userRootDir
|
|
19
|
+
async function crawlPlusFiles(userRootDir) {
|
|
17
20
|
assertPosixPath(userRootDir);
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
assertPosixPath(outDirAbsoluteFilesystem)
|
|
22
|
-
let outDirRelativeFromUserRootDir: string | null = path.posix.relative(userRootDir, outDirAbsoluteFilesystem)
|
|
23
|
-
if (outDirRelativeFromUserRootDir.startsWith('../')) {
|
|
24
|
-
// config.outDir is outside of config.root => it's going to be ignored anyways
|
|
25
|
-
outDirRelativeFromUserRootDir = null
|
|
26
|
-
}
|
|
27
|
-
//*/
|
|
28
|
-
assert(outDirRelativeFromUserRootDir === null ||
|
|
29
|
-
/* Not true if outDirRelativeFromUserRootDir starts with a hidden directory (i.e. a directory with a name that starts with `.`)
|
|
30
|
-
!outDirRelativeFromUserRootDir.startsWith('.') &&
|
|
31
|
-
*/
|
|
32
|
-
(!outDirRelativeFromUserRootDir.startsWith('./') &&
|
|
33
|
-
//
|
|
34
|
-
!outDirRelativeFromUserRootDir.startsWith('../')));
|
|
21
|
+
assertFilePathAbsoluteFilesystem(userRootDir);
|
|
22
|
+
const userSettings = getUserSettings();
|
|
23
|
+
const { ignorePatterns, ignoreMatchers } = getIgnore(userSettings);
|
|
35
24
|
// Crawl
|
|
36
|
-
const filesGit =
|
|
25
|
+
const filesGit = userSettings.git !== false && (await gitLsFiles(userRootDir, ignorePatterns, ignoreMatchers));
|
|
37
26
|
const filesGitNothingFound = !filesGit || filesGit.length === 0;
|
|
38
|
-
const filesGlob = (filesGitNothingFound || debug.isActivated) && (await
|
|
27
|
+
const filesGlob = (filesGitNothingFound || debug.isActivated) && (await tinyglobby(userRootDir, ignorePatterns));
|
|
39
28
|
let files = !filesGitNothingFound
|
|
40
29
|
? filesGit
|
|
41
|
-
: // Fallback to
|
|
30
|
+
: // Fallback to tinyglobby for users that dynamically generate plus files. (Assuming that no plus file is found because of the user's .gitignore list.)
|
|
42
31
|
filesGlob;
|
|
43
32
|
assert(files);
|
|
44
|
-
if (debug.isActivated)
|
|
45
|
-
assert(
|
|
33
|
+
if (debug.isActivated) {
|
|
34
|
+
assert(filesGit);
|
|
35
|
+
assert(filesGlob);
|
|
36
|
+
assertWarning(deepEqual(filesGlob.slice().sort(), filesGit.slice().sort()), "Git and glob results aren't matching.", { onlyOnce: false });
|
|
37
|
+
}
|
|
46
38
|
// Filter build files
|
|
47
39
|
files = files.filter((filePath) => !isTemporaryBuildFile(filePath));
|
|
48
40
|
// Normalize
|
|
49
41
|
const plusFiles = files.map((filePath) => {
|
|
50
|
-
// Both `$ git-ls files` and
|
|
42
|
+
// Both `$ git-ls files` and tinyglobby return posix paths
|
|
51
43
|
assertPosixPath(filePath);
|
|
52
44
|
assert(!filePath.startsWith(userRootDir));
|
|
53
45
|
const filePathAbsoluteUserRootDir = path.posix.join('/', filePath);
|
|
@@ -56,8 +48,8 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem) {
|
|
|
56
48
|
});
|
|
57
49
|
return plusFiles;
|
|
58
50
|
}
|
|
59
|
-
// Same as
|
|
60
|
-
async function gitLsFiles(userRootDir,
|
|
51
|
+
// Same as tinyglobby() but using `$ git ls-files`
|
|
52
|
+
async function gitLsFiles(userRootDir, ignorePatterns, ignoreMatchers) {
|
|
61
53
|
if (gitIsNotUsable)
|
|
62
54
|
return null;
|
|
63
55
|
// Preserve UTF-8 file paths.
|
|
@@ -65,8 +57,6 @@ async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
|
|
|
65
57
|
// https://stackoverflow.com/questions/22827239/how-to-make-git-properly-display-utf-8-encoded-pathnames-in-the-console-window/22828826#22828826
|
|
66
58
|
// https://stackoverflow.com/questions/15884180/how-do-i-override-git-configuration-options-by-command-line-parameters/15884261#15884261
|
|
67
59
|
const preserveUTF8 = '-c core.quotepath=off';
|
|
68
|
-
const ignoreAsPatterns = getIgnoreAsPatterns(outDirRelativeFromUserRootDir);
|
|
69
|
-
const ignoreAsFilterFn = getIgnoreAsFilterFn(outDirRelativeFromUserRootDir);
|
|
70
60
|
const cmd = [
|
|
71
61
|
'git',
|
|
72
62
|
preserveUTF8,
|
|
@@ -76,7 +66,7 @@ async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
|
|
|
76
66
|
// Performance gain is non-negligible.
|
|
77
67
|
// - https://github.com/vikejs/vike/pull/1688#issuecomment-2166206648
|
|
78
68
|
// - When node_modules/ is untracked the performance gain could be significant?
|
|
79
|
-
...
|
|
69
|
+
...ignorePatterns.map((pattern) => `--exclude="${pattern}"`),
|
|
80
70
|
// --others --exclude-standard => list untracked files (--others) while using .gitignore (--exclude-standard)
|
|
81
71
|
// --cached => list tracked files
|
|
82
72
|
'--others --exclude-standard --cached'
|
|
@@ -111,7 +101,7 @@ async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
|
|
|
111
101
|
if (!path.posix.basename(filePath).startsWith('+'))
|
|
112
102
|
continue;
|
|
113
103
|
// We have to repeat the same exclusion logic here because the option --exclude of `$ git ls-files` only applies to untracked files. (We use --exclude only to speed up the `$ git ls-files` command.)
|
|
114
|
-
if (
|
|
104
|
+
if (ignoreMatchers.some((m) => m(filePath)))
|
|
115
105
|
continue;
|
|
116
106
|
// JavaScript file?
|
|
117
107
|
if (!isScriptFile(filePath))
|
|
@@ -123,11 +113,11 @@ async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
|
|
|
123
113
|
}
|
|
124
114
|
return files;
|
|
125
115
|
}
|
|
126
|
-
// Same as gitLsFiles() but using
|
|
127
|
-
async function
|
|
116
|
+
// Same as gitLsFiles() but using tinyglobby
|
|
117
|
+
async function tinyglobby(userRootDir, ignorePatterns) {
|
|
128
118
|
const pattern = `**/+*.${scriptFileExtensions}`;
|
|
129
119
|
const options = {
|
|
130
|
-
ignore:
|
|
120
|
+
ignore: ignorePatterns,
|
|
131
121
|
cwd: userRootDir,
|
|
132
122
|
dot: false
|
|
133
123
|
};
|
|
@@ -142,32 +132,6 @@ async function fastGlob(userRootDir, outDirRelativeFromUserRootDir) {
|
|
|
142
132
|
}
|
|
143
133
|
return files;
|
|
144
134
|
}
|
|
145
|
-
// Same as getIgnoreAsFilterFn() but as glob pattern
|
|
146
|
-
function getIgnoreAsPatterns(outDirRelativeFromUserRootDir) {
|
|
147
|
-
const ignoreAsPatterns = [
|
|
148
|
-
'**/node_modules/**',
|
|
149
|
-
'**/ejected/**',
|
|
150
|
-
// Allow:
|
|
151
|
-
// ```
|
|
152
|
-
// +Page.js
|
|
153
|
-
// +Page.telefunc.js
|
|
154
|
-
// ```
|
|
155
|
-
'**/*.telefunc.*'
|
|
156
|
-
];
|
|
157
|
-
if (outDirRelativeFromUserRootDir) {
|
|
158
|
-
assert(!outDirRelativeFromUserRootDir.startsWith('/'));
|
|
159
|
-
ignoreAsPatterns.push(`${outDirRelativeFromUserRootDir}/**`);
|
|
160
|
-
}
|
|
161
|
-
return ignoreAsPatterns;
|
|
162
|
-
}
|
|
163
|
-
// Same as getIgnoreAsPatterns() but for Array.filter()
|
|
164
|
-
function getIgnoreAsFilterFn(outDirRelativeFromUserRootDir) {
|
|
165
|
-
assert(outDirRelativeFromUserRootDir === null || !outDirRelativeFromUserRootDir.startsWith('/'));
|
|
166
|
-
return (file) => !file.includes('node_modules/') &&
|
|
167
|
-
!file.includes('ejected/') &&
|
|
168
|
-
!file.includes('.telefunc.') &&
|
|
169
|
-
(outDirRelativeFromUserRootDir === null || !file.startsWith(`${outDirRelativeFromUserRootDir}/`));
|
|
170
|
-
}
|
|
171
135
|
// Whether Git is installed and whether we can use it
|
|
172
136
|
async function isGitNotUsable(userRootDir) {
|
|
173
137
|
// Check Git version
|
|
@@ -222,9 +186,19 @@ async function runCmd2(cmd, cwd) {
|
|
|
222
186
|
stderr = stderr.toString().trim();
|
|
223
187
|
return { stdout, stderr };
|
|
224
188
|
}
|
|
225
|
-
function
|
|
226
|
-
const
|
|
227
|
-
|
|
189
|
+
function getUserSettings() {
|
|
190
|
+
const userSettings = getEnvVarObject('VIKE_CRAWL') ?? {};
|
|
191
|
+
const wrongUsage = (settingName, settingType) => `Setting ${pc.cyan(settingName)} in VIKE_CRAWL should be a ${pc.cyan(settingType)}`;
|
|
192
|
+
assertUsage(hasProp(userSettings, 'git', 'boolean') || hasProp(userSettings, 'git', 'undefined'), wrongUsage('git', 'boolean'));
|
|
193
|
+
assertUsage(hasProp(userSettings, 'ignore', 'string[]') ||
|
|
194
|
+
hasProp(userSettings, 'ignore', 'string') ||
|
|
195
|
+
hasProp(userSettings, 'ignore', 'undefined'), wrongUsage('git', 'string or an array of strings'));
|
|
196
|
+
assertUsage(hasProp(userSettings, 'ignoreBuiltIn', 'boolean') || hasProp(userSettings, 'ignoreBuiltIn', 'undefined'), wrongUsage('ignoreBuiltIn', 'boolean'));
|
|
197
|
+
const settingNames = ['git', 'ignore', 'ignoreBuiltIn'];
|
|
198
|
+
Object.keys(userSettings).forEach((name) => {
|
|
199
|
+
assertUsage(settingNames.includes(name), `Unknown setting ${pc.bold(pc.red(name))} in VIKE_CRAWL`);
|
|
200
|
+
});
|
|
201
|
+
return userSettings;
|
|
228
202
|
}
|
|
229
203
|
function isPlusFile(filePath) {
|
|
230
204
|
assertPosixPath(filePath);
|
|
@@ -260,3 +234,15 @@ function assertNoUnexpectedPlusSign(filePath: string, fileName: string) {
|
|
|
260
234
|
)
|
|
261
235
|
}
|
|
262
236
|
*/
|
|
237
|
+
function getIgnore(userSettings) {
|
|
238
|
+
const ignorePatternsSetByUser = [userSettings.ignore].flat().filter(isNotNullish);
|
|
239
|
+
const { ignoreBuiltIn } = userSettings;
|
|
240
|
+
const ignorePatterns = [...(ignoreBuiltIn === false ? [] : ignorePatternsBuiltIn), ...ignorePatternsSetByUser];
|
|
241
|
+
const ignoreMatchers = ignorePatterns.map((p) => picomatch(p, {
|
|
242
|
+
// We must pass the same settings than tinyglobby
|
|
243
|
+
// https://github.com/SuperchupuDev/tinyglobby/blob/fcfb08a36c3b4d48d5488c21000c95a956d9797c/src/index.ts#L191-L194
|
|
244
|
+
dot: false,
|
|
245
|
+
nocase: false
|
|
246
|
+
}));
|
|
247
|
+
return { ignorePatterns, ignoreMatchers };
|
|
248
|
+
}
|
package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js
CHANGED
|
@@ -40,6 +40,7 @@ function getLogicalPath(locationId, ignoredDirs, removeParenthesesDirs) {
|
|
|
40
40
|
assertIsPath(logicalPath);
|
|
41
41
|
return logicalPath;
|
|
42
42
|
}
|
|
43
|
+
// See getPlusFilesRelevant() and getPlusFilesOrdered()
|
|
43
44
|
function sortAfterInheritanceOrder(locationId1, locationId2, locationIdPage) {
|
|
44
45
|
assertLocationId(locationId1);
|
|
45
46
|
assertLocationId(locationId2);
|
|
@@ -48,7 +49,7 @@ function sortAfterInheritanceOrder(locationId1, locationId2, locationIdPage) {
|
|
|
48
49
|
const inheritanceRoot1 = getInheritanceRoot(locationId1);
|
|
49
50
|
const inheritanceRoot2 = getInheritanceRoot(locationId2);
|
|
50
51
|
const inheritanceRootPage = getInheritanceRoot(locationIdPage);
|
|
51
|
-
//
|
|
52
|
+
// Only works if both locationId1 and locationId2 are inherited by the same page
|
|
52
53
|
assert(isInherited(locationId1, locationIdPage));
|
|
53
54
|
assert(isInherited(locationId2, locationIdPage));
|
|
54
55
|
// Equivalent assertion (see isInherited() implementation)
|
package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js
CHANGED
|
@@ -9,7 +9,7 @@ import { resolvePointerImport } from './resolvePointerImport.js';
|
|
|
9
9
|
import { getFilePathResolved } from '../../../../shared/getFilePath.js';
|
|
10
10
|
import { assertExtensionsConventions } from './assertExtensions.js';
|
|
11
11
|
async function getPlusFilesAll(userRootDir, esbuildCache) {
|
|
12
|
-
const plusFiles = await findPlusFiles(userRootDir
|
|
12
|
+
const plusFiles = await findPlusFiles(userRootDir);
|
|
13
13
|
const configFiles = [];
|
|
14
14
|
const valueFiles = [];
|
|
15
15
|
plusFiles.forEach((f) => {
|
|
@@ -112,8 +112,8 @@ function getPlusFileFromConfigFile(configFile, isExtensionConfig, locationId, us
|
|
|
112
112
|
function sortMakeDeterministic(plusFile1, plusFile2) {
|
|
113
113
|
return plusFile1.filePath.filePathAbsoluteVite < plusFile2.filePath.filePathAbsoluteVite ? -1 : 1;
|
|
114
114
|
}
|
|
115
|
-
async function findPlusFiles(userRootDir
|
|
116
|
-
const files = await crawlPlusFiles(userRootDir
|
|
115
|
+
async function findPlusFiles(userRootDir) {
|
|
116
|
+
const files = await crawlPlusFiles(userRootDir);
|
|
117
117
|
const plusFiles = files.map(({ filePathAbsoluteUserRootDir }) => getFilePathResolved({ filePathAbsoluteUserRootDir, userRootDir }));
|
|
118
118
|
return plusFiles;
|
|
119
119
|
}
|
|
@@ -3,7 +3,6 @@ export { getConfigBuildErrorFormatted };
|
|
|
3
3
|
export { getConfigExecutionErrorIntroMsg };
|
|
4
4
|
export { isTemporaryBuildFile };
|
|
5
5
|
export type { EsbuildCache };
|
|
6
|
-
import 'source-map-support/register.js';
|
|
7
6
|
import type { FilePathResolved } from '../../../../../../shared/page-configs/FilePath.js';
|
|
8
7
|
type FileExports = {
|
|
9
8
|
fileExports: Record<string, unknown>;
|
|
@@ -7,16 +7,17 @@ import fs from 'fs';
|
|
|
7
7
|
import path from 'path';
|
|
8
8
|
import pc from '@brillout/picocolors';
|
|
9
9
|
import { import_ } from '@brillout/import';
|
|
10
|
-
import { assertPosixPath, getRandomId, assertIsNotProductionRuntime, assert, assertWarning, isObject, toPosixPath, assertUsage, isPlainJavaScriptFile, createDebugger, assertFilePathAbsoluteFilesystem, assertIsNpmPackageImport, genPromise } from '../../../../utils.js';
|
|
10
|
+
import { assertPosixPath, getRandomId, assertIsNotProductionRuntime, assert, assertWarning, isObject, toPosixPath, assertUsage, isPlainJavaScriptFile, createDebugger, assertFilePathAbsoluteFilesystem, assertIsNpmPackageImport, genPromise, isVitest } from '../../../../utils.js';
|
|
11
11
|
import { transformPointerImports } from './transformPointerImports.js';
|
|
12
12
|
import { vikeConfigDependencies } from '../getVikeConfig.js';
|
|
13
|
-
import 'source-map-support
|
|
13
|
+
import sourceMapSupport from 'source-map-support';
|
|
14
14
|
import { getFilePathAbsoluteUserRootDir } from '../../../../shared/getFilePath.js';
|
|
15
15
|
import { createRequire } from 'module';
|
|
16
|
-
// @ts-ignore
|
|
16
|
+
// @ts-ignore import.meta.url is shimmed at dist/cjs by dist-cjs-fixup.js.
|
|
17
17
|
const importMetaUrl = import.meta.url;
|
|
18
18
|
const require_ = createRequire(importMetaUrl);
|
|
19
19
|
assertIsNotProductionRuntime();
|
|
20
|
+
installSourceMapSupport();
|
|
20
21
|
const debug = createDebugger('vike:pointer-imports');
|
|
21
22
|
const debugEsbuildResolve = createDebugger('vike:esbuild-resolve');
|
|
22
23
|
if (debugEsbuildResolve.isActivated)
|
|
@@ -163,14 +164,17 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports) {
|
|
|
163
164
|
// - vike@0.4.162 started soft-requiring Vike extensions to set the name config.
|
|
164
165
|
// - In practice, it seems like it requires some (non-trivial?) refactoring.
|
|
165
166
|
isVikeExtensionImport;
|
|
167
|
+
// Externalize npm package imports
|
|
166
168
|
assertPosixPath(importPathResolved);
|
|
167
|
-
const
|
|
169
|
+
const isNpmPkgImport = importPathResolved.includes('/node_modules/') ||
|
|
170
|
+
// Linked npm packages
|
|
171
|
+
!importPathResolved.startsWith(userRootDir);
|
|
168
172
|
const isExternal = isPointerImport ||
|
|
169
173
|
// Performance: npm package imports can be externalized. (We could as well let esbuild transpile /node_modules/ code but it's useless as /node_modules/ code is already built. It would unnecessarily slow down transpilation.)
|
|
170
|
-
|
|
174
|
+
isNpmPkgImport;
|
|
171
175
|
if (!isExternal) {
|
|
172
176
|
// User-land config code (i.e. not runtime code) => let esbuild transpile it
|
|
173
|
-
assert(!isPointerImport && !
|
|
177
|
+
assert(!isPointerImport && !isNpmPkgImport);
|
|
174
178
|
if (debug.isActivated)
|
|
175
179
|
debug('onResolved()', { args, resolved, isPointerImport, isExternal });
|
|
176
180
|
return resolved;
|
|
@@ -189,7 +193,7 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports) {
|
|
|
189
193
|
userRootDir
|
|
190
194
|
});
|
|
191
195
|
// We assuming that path aliases always resolve inside `userRootDir`.
|
|
192
|
-
if (filePathAbsoluteUserRootDir && !
|
|
196
|
+
if (filePathAbsoluteUserRootDir && !isNpmPkgImport) {
|
|
193
197
|
// `importPathOriginal` is a path alias.
|
|
194
198
|
// - We have to use esbuild's path alias resolution, because:
|
|
195
199
|
// - Vike doesn't resolve path aliases at all.
|
|
@@ -211,7 +215,7 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports) {
|
|
|
211
215
|
// Import of runtime code => handled by Vike
|
|
212
216
|
isPointerImport ||
|
|
213
217
|
// Import of config code => loaded by Node.js at build-time
|
|
214
|
-
|
|
218
|
+
isNpmPkgImport);
|
|
215
219
|
pointerImports[importPathTranspiled] = isPointerImport;
|
|
216
220
|
return { external: true, path: importPathTranspiled };
|
|
217
221
|
});
|
|
@@ -398,3 +402,11 @@ function cleanEsbuildErrors(errors) {
|
|
|
398
402
|
// ```
|
|
399
403
|
!note.text.includes('as external to exclude it from the bundle'))));
|
|
400
404
|
}
|
|
405
|
+
function installSourceMapSupport() {
|
|
406
|
+
// Don't break Vitest's source mapping
|
|
407
|
+
if (isVitest())
|
|
408
|
+
return;
|
|
409
|
+
// How about other test runners?
|
|
410
|
+
// Should we call installSourceMapSupport() lazily in transpileAndExecuteFile() instead?
|
|
411
|
+
sourceMapSupport.install();
|
|
412
|
+
}
|
|
@@ -5,10 +5,11 @@ export { vikeConfigDependencies };
|
|
|
5
5
|
export { isV1Design };
|
|
6
6
|
export { getConfVal };
|
|
7
7
|
export { getConfigDefinitionOptional };
|
|
8
|
+
export { isOverriden };
|
|
8
9
|
export type { VikeConfigObject };
|
|
9
|
-
import type { PageConfigGlobalBuildTime, PageConfigBuildTime } from '../../../../../shared/page-configs/PageConfig.js';
|
|
10
|
+
import type { PageConfigGlobalBuildTime, ConfigValueSource, PageConfigBuildTime } from '../../../../../shared/page-configs/PageConfig.js';
|
|
10
11
|
import { type ConfigDefinitions, type ConfigDefinitionInternal } from './getVikeConfig/configDefinitionsBuiltIn.js';
|
|
11
|
-
import type { ResolvedConfig } from 'vite';
|
|
12
|
+
import type { ResolvedConfig, UserConfig } from 'vite';
|
|
12
13
|
import { type PageConfigUserFriendly, type PageConfigsUserFriendly } from '../../../../../shared/page-configs/getPageConfigUserFriendly.js';
|
|
13
14
|
import { type PlusFile } from './getVikeConfig/getPlusFilesAll.js';
|
|
14
15
|
type VikeConfigObject = {
|
|
@@ -23,11 +24,12 @@ declare function getVikeConfig(config: ResolvedConfig, { doNotRestartViteOnError
|
|
|
23
24
|
doNotRestartViteOnError?: true;
|
|
24
25
|
}): Promise<VikeConfigObject>;
|
|
25
26
|
declare function getVikeConfig2(userRootDir: string, isDev: boolean, vikeVitePluginOptions: unknown): Promise<VikeConfigObject>;
|
|
26
|
-
declare function isV1Design(config: ResolvedConfig):
|
|
27
|
+
declare function isV1Design(config: ResolvedConfig | UserConfig): boolean;
|
|
27
28
|
declare function getConfigDefinitionOptional(configDefinitions: ConfigDefinitions, configName: string): ConfigDefinitionInternal | null;
|
|
28
29
|
declare function getConfVal(plusFile: PlusFile, configName: string): null | {
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
value: unknown;
|
|
31
|
+
valueIsLoaded: true;
|
|
31
32
|
} | {
|
|
32
|
-
|
|
33
|
+
valueIsLoaded: false;
|
|
33
34
|
};
|
|
35
|
+
declare function isOverriden(source: ConfigValueSource, configName: string, pageConfig: PageConfigBuildTime | PageConfigGlobalBuildTime): boolean;
|