vike 0.4.222 → 0.4.223-commit-6f064ad
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/client/shared/getPageContextProxyForUser.js +1 -1
- package/dist/cjs/node/api/prepareViteApiCall.js +1 -1
- package/dist/cjs/node/plugin/index.js +6 -4
- package/dist/cjs/node/plugin/plugins/baseUrls.js +9 -2
- package/dist/cjs/node/plugin/plugins/buildApp.js +14 -7
- package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +49 -19
- package/dist/cjs/node/plugin/plugins/buildConfig.js +6 -1
- package/dist/cjs/node/plugin/plugins/commonConfig.js +17 -1
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
- package/dist/cjs/node/plugin/plugins/envVars.js +2 -18
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +2 -2
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +4 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +6 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +11 -10
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +8 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +36 -71
- package/dist/cjs/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +1 -1
- package/dist/cjs/node/plugin/shared/viteIsSSR.js +19 -10
- package/dist/cjs/node/prerender/runPrerender.js +3 -1
- package/dist/cjs/node/runtime/globalContext.js +19 -8
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +24 -0
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +1 -1
- package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
- package/dist/cjs/node/runtime/renderPage/isNewError.js +1 -1
- package/dist/cjs/node/runtime/renderPage/isVikeConfigInvalid.js +10 -0
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +7 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -4
- package/dist/cjs/node/runtime/renderPage.js +63 -49
- package/dist/cjs/node/runtime/universal-middleware.js +14 -0
- package/dist/cjs/node/shared/resolveBase.js +0 -13
- package/dist/cjs/shared/getPageConfigsRuntime.js +2 -8
- package/dist/cjs/shared/getPageContextRequestUrl.js +1 -1
- package/dist/cjs/shared/getPageContextUrlComputed.js +12 -9
- package/dist/cjs/shared/hooks/getHook.js +1 -1
- package/dist/cjs/shared/page-configs/getPageConfigUserFriendly.js +44 -12
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +2 -8
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +16 -6
- package/dist/cjs/shared/route/loadPageRoutes.js +1 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +1 -1
- package/dist/cjs/utils/assertSetup.js +1 -1
- package/dist/cjs/utils/assertSingleInstance.js +2 -2
- package/dist/cjs/utils/findFile.js +1 -1
- package/dist/cjs/utils/getGlobalObject.js +2 -6
- package/dist/cjs/utils/parseUrl-extras.js +2 -2
- package/dist/cjs/utils/parseUrl.js +5 -5
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.js +1 -1
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
- package/dist/esm/client/client-routing-runtime/history.js +1 -1
- 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/prefetch/getPrefetchSettings.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.js +3 -3
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +8 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +12 -3
- package/dist/esm/client/client-routing-runtime/scrollRestoration.js +1 -1
- package/dist/esm/client/client-routing-runtime/skipLink.js +2 -2
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
- package/dist/esm/client/shared/getPageContextProxyForUser.js +1 -1
- package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/api/prepareViteApiCall.js +1 -1
- package/dist/esm/node/plugin/index.d.ts +6 -2
- package/dist/esm/node/plugin/index.js +2 -1
- package/dist/esm/node/plugin/plugins/baseUrls.js +9 -2
- package/dist/esm/node/plugin/plugins/buildApp.js +14 -7
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +49 -19
- package/dist/esm/node/plugin/plugins/buildConfig.js +6 -1
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +14 -6
- package/dist/esm/node/plugin/plugins/commonConfig.js +17 -1
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
- package/dist/esm/node/plugin/plugins/envVars.js +2 -18
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +3 -3
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +4 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +6 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +10 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +8 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +5 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +38 -73
- package/dist/esm/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/esm/node/plugin/shared/getHttpRequestAsyncStore.js +2 -2
- package/dist/esm/node/plugin/shared/viteIsSSR.d.ts +7 -4
- package/dist/esm/node/plugin/shared/viteIsSSR.js +20 -11
- package/dist/esm/node/prerender/runPrerender.js +3 -1
- package/dist/esm/node/runtime/globalContext.d.ts +9 -8
- package/dist/esm/node/runtime/globalContext.js +19 -8
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +2 -2
- package/dist/esm/node/runtime/html/injectAssets.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +24 -0
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +1 -1
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
- package/dist/esm/node/runtime/renderPage/isNewError.js +1 -1
- package/dist/esm/node/runtime/renderPage/isVikeConfigInvalid.d.ts +6 -0
- package/dist/esm/node/runtime/renderPage/isVikeConfigInvalid.js +8 -0
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +3 -3
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +7 -1
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +4 -4
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +12 -12
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -4
- package/dist/esm/node/runtime/renderPage.d.ts +5 -5
- package/dist/esm/node/runtime/renderPage.js +64 -49
- package/dist/esm/node/runtime/universal-middleware.d.ts +1 -0
- package/dist/esm/node/runtime/universal-middleware.js +11 -0
- package/dist/esm/node/shared/resolveBase.d.ts +1 -9
- package/dist/esm/node/shared/resolveBase.js +0 -13
- package/dist/esm/shared/getPageConfigsRuntime.d.ts +2 -2
- package/dist/esm/shared/getPageConfigsRuntime.js +3 -9
- package/dist/esm/shared/getPageContextRequestUrl.js +1 -1
- package/dist/esm/shared/getPageContextUrlComputed.js +12 -9
- package/dist/esm/shared/getPageFiles.d.ts +1 -1
- package/dist/esm/shared/hooks/getHook.d.ts +3 -3
- package/dist/esm/shared/hooks/getHook.js +1 -1
- package/dist/esm/shared/page-configs/Config.d.ts +3 -1
- package/dist/esm/shared/page-configs/PageConfig.d.ts +12 -4
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +24 -16
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +44 -12
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +3 -2
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +2 -8
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +2 -0
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +16 -6
- package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +1 -1
- package/dist/esm/shared/types.d.ts +6 -0
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assert.js +1 -1
- package/dist/esm/utils/assertSetup.js +1 -1
- package/dist/esm/utils/assertSingleInstance.js +2 -2
- package/dist/esm/utils/findFile.js +1 -1
- package/dist/esm/utils/getGlobalObject.d.ts +3 -2
- package/dist/esm/utils/getGlobalObject.js +2 -6
- package/dist/esm/utils/parseUrl-extras.js +2 -2
- package/dist/esm/utils/parseUrl.d.ts +3 -4
- package/dist/esm/utils/parseUrl.js +5 -5
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/package.json +16 -3
- package/universal-middleware.js +3 -0
- package/dist/cjs/node/runtime/renderPage/isConfigInvalid.js +0 -10
- package/dist/esm/node/runtime/renderPage/isConfigInvalid.d.ts +0 -6
- package/dist/esm/node/runtime/renderPage/isConfigInvalid.js +0 -8
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getPageContextProxyForUser = getPageContextProxyForUser;
|
|
4
4
|
const utils_js_1 = require("../server-routing-runtime/utils.js");
|
|
5
5
|
const notSerializable_js_1 = require("../../shared/notSerializable.js");
|
|
6
|
-
const globalObject = (0, utils_js_1.getGlobalObject)('getPageContextProxyForUser.ts', {});
|
|
6
|
+
const globalObject = (0, utils_js_1.getGlobalObject)('shared/getPageContextProxyForUser.ts', {});
|
|
7
7
|
/**
|
|
8
8
|
* Throw error when pageContext value isn't:
|
|
9
9
|
* - serializable, or
|
|
@@ -48,7 +48,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
48
48
|
const utils_js_1 = require("./utils.js");
|
|
49
49
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
50
50
|
const globalContext_js_1 = require("../runtime/globalContext.js");
|
|
51
|
-
const globalObject = (0, utils_js_1.getGlobalObject)('prepareViteApiCall.ts', {});
|
|
51
|
+
const globalObject = (0, utils_js_1.getGlobalObject)('api/prepareViteApiCall.ts', {});
|
|
52
52
|
async function prepareViteApiCall(viteConfigFromOptions, operation) {
|
|
53
53
|
clear();
|
|
54
54
|
(0, context_js_1.setContextApiOperation)(operation);
|
|
@@ -3,10 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.version = void 0;
|
|
6
|
+
exports.version = exports.getVikeConfig = void 0;
|
|
7
7
|
exports.plugin = plugin;
|
|
8
8
|
exports.ssr = plugin;
|
|
9
9
|
exports.default = plugin;
|
|
10
|
+
var commonConfig_js_1 = require("./plugins/commonConfig.js");
|
|
11
|
+
Object.defineProperty(exports, "getVikeConfig", { enumerable: true, get: function () { return commonConfig_js_1.getVikeConfigPublic; } });
|
|
10
12
|
var utils_js_1 = require("./utils.js");
|
|
11
13
|
Object.defineProperty(exports, "version", { enumerable: true, get: function () { return utils_js_1.PROJECT_VERSION; } });
|
|
12
14
|
const utils_js_2 = require("./utils.js");
|
|
@@ -23,7 +25,7 @@ const extractExportNamesPlugin_js_1 = require("./plugins/extractExportNamesPlugi
|
|
|
23
25
|
const suppressRollupWarning_js_1 = require("./plugins/suppressRollupWarning.js");
|
|
24
26
|
const setGlobalContext_js_1 = require("./plugins/setGlobalContext.js");
|
|
25
27
|
const index_js_3 = require("./plugins/buildEntry/index.js");
|
|
26
|
-
const
|
|
28
|
+
const commonConfig_js_2 = require("./plugins/commonConfig.js");
|
|
27
29
|
const baseUrls_js_1 = require("./plugins/baseUrls.js");
|
|
28
30
|
const envVars_js_1 = require("./plugins/envVars.js");
|
|
29
31
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
@@ -35,10 +37,10 @@ const workaroundVite6HmrRegression_js_1 = require("./plugins/workaroundVite6HmrR
|
|
|
35
37
|
const buildApp_js_1 = require("./plugins/buildApp.js");
|
|
36
38
|
// We don't call this in ./onLoad.ts to avoid a cyclic dependency with utils.ts
|
|
37
39
|
(0, getPageAssets_js_1.setResolveClientEntriesDev)(resolveClientEntriesDev_js_1.resolveClientEntriesDev);
|
|
38
|
-
// Return
|
|
40
|
+
// Return `PluginInterop` instead of `Plugin` to avoid type mismatch upon different Vite versions
|
|
39
41
|
function plugin(vikeVitePluginOptions = {}) {
|
|
40
42
|
const plugins = [
|
|
41
|
-
...(0,
|
|
43
|
+
...(0, commonConfig_js_2.commonConfig)(vikeVitePluginOptions),
|
|
42
44
|
(0, index_js_2.importUserCode)(),
|
|
43
45
|
...(0, index_js_1.devConfig)(),
|
|
44
46
|
...(0, buildConfig_js_1.buildConfig)(),
|
|
@@ -4,6 +4,7 @@ exports.baseUrls = baseUrls;
|
|
|
4
4
|
const resolveBase_js_1 = require("../../shared/resolveBase.js");
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
6
|
const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
|
|
7
|
+
const commonConfig_js_1 = require("./commonConfig.js");
|
|
7
8
|
function baseUrls() {
|
|
8
9
|
let basesResolved;
|
|
9
10
|
return {
|
|
@@ -13,7 +14,8 @@ function baseUrls() {
|
|
|
13
14
|
const isDev = config._isDev;
|
|
14
15
|
(0, utils_js_1.assert)(typeof isDev === 'boolean');
|
|
15
16
|
const baseViteOriginal = config.base ?? '/__UNSET__'; // '/__UNSET__' because Vite resolves `_baseViteOriginal: null` to `undefined`
|
|
16
|
-
|
|
17
|
+
const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
|
|
18
|
+
basesResolved = (0, resolveBase_js_1.resolveBase)(baseViteOriginal, vike.config.baseServer ?? null, vike.config.baseAssets ?? null);
|
|
17
19
|
// We cannot define these in configResolved() because Vite picks up the env variables before any configResolved() hook is called
|
|
18
20
|
process.env.BASE_SERVER = basesResolved.baseServer;
|
|
19
21
|
process.env.BASE_ASSETS = basesResolved.baseAssets;
|
|
@@ -29,7 +31,7 @@ function baseUrls() {
|
|
|
29
31
|
},
|
|
30
32
|
async configResolved(config) {
|
|
31
33
|
const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
|
|
32
|
-
const basesResolved2 =
|
|
34
|
+
const basesResolved2 = resolveBaseFromResolvedConfig(vikeConfig.global.config.baseServer ?? null, vikeConfig.global.config.baseAssets ?? null, config);
|
|
33
35
|
(0, utils_js_1.assert)(basesResolved2.baseServer === basesResolved.baseServer);
|
|
34
36
|
(0, utils_js_1.assert)(basesResolved2.baseAssets === basesResolved.baseAssets);
|
|
35
37
|
/* In dev, Vite seems buggy around setting vite.config.js#base to an absolute URL (e.g. http://localhost:8080/cdn/)
|
|
@@ -40,3 +42,8 @@ function baseUrls() {
|
|
|
40
42
|
}
|
|
41
43
|
};
|
|
42
44
|
}
|
|
45
|
+
function resolveBaseFromResolvedConfig(baseServer, baseAssets, config) {
|
|
46
|
+
let baseViteOriginal = config._baseViteOriginal;
|
|
47
|
+
(0, utils_js_1.assert)(baseViteOriginal === null || typeof baseViteOriginal == 'string');
|
|
48
|
+
return (0, resolveBase_js_1.resolveBase)(baseViteOriginal, baseServer, baseAssets);
|
|
49
|
+
}
|
|
@@ -7,14 +7,19 @@ const getOutDirs_js_1 = require("../shared/getOutDirs.js");
|
|
|
7
7
|
const utils_js_1 = require("../utils.js");
|
|
8
8
|
const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
|
|
9
9
|
const getFullBuildInlineConfig_js_1 = require("../shared/getFullBuildInlineConfig.js");
|
|
10
|
+
const commonConfig_js_1 = require("./commonConfig.js");
|
|
10
11
|
function buildApp() {
|
|
11
12
|
let config;
|
|
13
|
+
// `builder.buildApp` can be overriden by another plugin e.g vike-vercel https://github.com/vikejs/vike/pull/2184#issuecomment-2659425195
|
|
14
|
+
// In that case, we should'nt `forceExit`.
|
|
15
|
+
let forceExit = false;
|
|
12
16
|
return [
|
|
13
17
|
{
|
|
14
18
|
name: 'vike:buildApp',
|
|
15
19
|
apply: 'build',
|
|
16
20
|
config(config) {
|
|
17
|
-
|
|
21
|
+
const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
|
|
22
|
+
if (!vike.config.viteEnvironmentAPI)
|
|
18
23
|
return;
|
|
19
24
|
return {
|
|
20
25
|
builder: {
|
|
@@ -23,6 +28,10 @@ function buildApp() {
|
|
|
23
28
|
(0, utils_js_1.assert)(builder.environments.ssr);
|
|
24
29
|
await builder.build(builder.environments.client);
|
|
25
30
|
await builder.build(builder.environments.ssr);
|
|
31
|
+
if (forceExit) {
|
|
32
|
+
(0, runPrerender_js_1.runPrerender_forceExit)();
|
|
33
|
+
(0, utils_js_1.assert)(false);
|
|
34
|
+
}
|
|
26
35
|
}
|
|
27
36
|
},
|
|
28
37
|
environments: {
|
|
@@ -55,17 +64,15 @@ function buildApp() {
|
|
|
55
64
|
config = _config;
|
|
56
65
|
},
|
|
57
66
|
async writeBundle() {
|
|
58
|
-
|
|
67
|
+
const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
|
|
68
|
+
if (!vike.config.viteEnvironmentAPI)
|
|
59
69
|
return;
|
|
60
70
|
const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
|
|
61
71
|
if (!(0, context_js_1.isPrerenderAutoRunEnabled)(vikeConfig))
|
|
62
72
|
return;
|
|
63
73
|
const configInline = (0, getFullBuildInlineConfig_js_1.getFullBuildInlineConfig)(config);
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
(0, runPrerender_js_1.runPrerender_forceExit)();
|
|
67
|
-
(0, utils_js_1.assert)(false);
|
|
68
|
-
}
|
|
74
|
+
const res = await (0, runPrerender_js_1.runPrerenderFromAutoRun)(configInline, config);
|
|
75
|
+
forceExit = res.forceExit;
|
|
69
76
|
}
|
|
70
77
|
}
|
|
71
78
|
];
|
|
@@ -35,8 +35,8 @@ async function fixServerAssets(config) {
|
|
|
35
35
|
const outDirs = (0, getOutDirs_js_1.getOutDirs)(config);
|
|
36
36
|
const clientManifest = await loadManifest(outDirs.outDirClient);
|
|
37
37
|
const serverManifest = await loadManifest(outDirs.outDirServer);
|
|
38
|
-
const { clientManifestMod, serverManifestMod,
|
|
39
|
-
await copyAssets(
|
|
38
|
+
const { clientManifestMod, serverManifestMod, filesToMove, filesToRemove } = addServerAssets(clientManifest, serverManifest);
|
|
39
|
+
await copyAssets(filesToMove, filesToRemove, config);
|
|
40
40
|
return { clientManifestMod, serverManifestMod };
|
|
41
41
|
}
|
|
42
42
|
async function loadManifest(outDir) {
|
|
@@ -47,15 +47,15 @@ async function loadManifest(outDir) {
|
|
|
47
47
|
(0, utils_js_1.assert)(manifest);
|
|
48
48
|
return manifest;
|
|
49
49
|
}
|
|
50
|
-
async function copyAssets(
|
|
50
|
+
async function copyAssets(filesToMove, filesToRemove, config) {
|
|
51
51
|
const { outDirClient, outDirServer } = (0, getOutDirs_js_1.getOutDirs)(config);
|
|
52
52
|
const assetsDir = (0, getAssetsDir_js_1.getAssetsDir)(config);
|
|
53
53
|
const assetsDirServer = path_1.default.posix.join(outDirServer, assetsDir);
|
|
54
|
-
if (!
|
|
54
|
+
if (!filesToMove.length && !filesToRemove.length && !(0, fs_2.existsSync)(assetsDirServer))
|
|
55
55
|
return;
|
|
56
56
|
(0, utils_js_1.assert)((0, fs_2.existsSync)(assetsDirServer));
|
|
57
57
|
const concurrencyLimit = (0, utils_js_1.pLimit)(10);
|
|
58
|
-
await Promise.all(
|
|
58
|
+
await Promise.all(filesToMove.map((file) => concurrencyLimit(async () => {
|
|
59
59
|
const source = path_1.default.posix.join(outDirServer, file);
|
|
60
60
|
const target = path_1.default.posix.join(outDirClient, file);
|
|
61
61
|
await promises_1.default.mkdir(path_1.default.posix.dirname(target), { recursive: true });
|
|
@@ -91,19 +91,20 @@ function addServerAssets(clientManifest, serverManifest) {
|
|
|
91
91
|
(0, utils_js_1.assert)(!entriesServer.has(pageId));
|
|
92
92
|
entriesServer.set(pageId, { key, ...resources });
|
|
93
93
|
}
|
|
94
|
-
let
|
|
94
|
+
let filesToMove = [];
|
|
95
95
|
let filesToRemove = [];
|
|
96
|
+
// Copy page assets
|
|
96
97
|
for (const [pageId, entryClient] of entriesClient.entries()) {
|
|
97
98
|
const entryServer = entriesServer.get(pageId);
|
|
98
99
|
if (!entryServer)
|
|
99
100
|
continue;
|
|
100
|
-
const
|
|
101
|
+
const cssToMove = [];
|
|
101
102
|
const cssToRemove = [];
|
|
102
|
-
const
|
|
103
|
+
const assetsToMove = [];
|
|
103
104
|
const assetsToRemove = [];
|
|
104
105
|
entryServer.css.forEach((cssServer) => {
|
|
105
106
|
if (!entryClient.css.some((cssClient) => cssServer.hash === cssClient.hash)) {
|
|
106
|
-
|
|
107
|
+
cssToMove.push(cssServer.src);
|
|
107
108
|
}
|
|
108
109
|
else {
|
|
109
110
|
cssToRemove.push(cssServer.src);
|
|
@@ -111,17 +112,17 @@ function addServerAssets(clientManifest, serverManifest) {
|
|
|
111
112
|
});
|
|
112
113
|
entryServer.assets.forEach((assetServer) => {
|
|
113
114
|
if (!entryClient.assets.some((assetClient) => assetServer.hash === assetClient.hash)) {
|
|
114
|
-
|
|
115
|
+
assetsToMove.push(assetServer.src);
|
|
115
116
|
}
|
|
116
117
|
else {
|
|
117
118
|
assetsToRemove.push(assetServer.src);
|
|
118
119
|
}
|
|
119
120
|
});
|
|
120
|
-
if (
|
|
121
|
+
if (cssToMove.length) {
|
|
121
122
|
const { key } = entryClient;
|
|
122
|
-
|
|
123
|
+
filesToMove.push(...cssToMove);
|
|
123
124
|
(_a = clientManifest[key]).css ?? (_a.css = []);
|
|
124
|
-
clientManifest[key].css?.push(...
|
|
125
|
+
clientManifest[key].css?.push(...cssToMove);
|
|
125
126
|
}
|
|
126
127
|
if (cssToRemove.length) {
|
|
127
128
|
const { key } = entryServer;
|
|
@@ -129,11 +130,11 @@ function addServerAssets(clientManifest, serverManifest) {
|
|
|
129
130
|
(_b = serverManifest[key]).css ?? (_b.css = []);
|
|
130
131
|
serverManifest[key].css = serverManifest[key].css.filter((entry) => !cssToRemove.includes(entry));
|
|
131
132
|
}
|
|
132
|
-
if (
|
|
133
|
+
if (assetsToMove.length) {
|
|
133
134
|
const { key } = entryClient;
|
|
134
|
-
|
|
135
|
+
filesToMove.push(...assetsToMove);
|
|
135
136
|
(_c = clientManifest[key]).assets ?? (_c.assets = []);
|
|
136
|
-
clientManifest[key].assets?.push(...
|
|
137
|
+
clientManifest[key].assets?.push(...assetsToMove);
|
|
137
138
|
}
|
|
138
139
|
if (assetsToRemove.length) {
|
|
139
140
|
const { key } = entryServer;
|
|
@@ -142,11 +143,40 @@ function addServerAssets(clientManifest, serverManifest) {
|
|
|
142
143
|
serverManifest[key].assets = serverManifest[key].assets.filter((entry) => !assetsToRemove.includes(entry));
|
|
143
144
|
}
|
|
144
145
|
}
|
|
146
|
+
// Also copy assets of virtual:@brillout/vite-plugin-server-entry:serverEntry
|
|
147
|
+
{
|
|
148
|
+
const filesClientAll = [];
|
|
149
|
+
for (const key in clientManifest) {
|
|
150
|
+
const entry = clientManifest[key];
|
|
151
|
+
filesClientAll.push(entry.file);
|
|
152
|
+
filesClientAll.push(...(entry.assets ?? []));
|
|
153
|
+
filesClientAll.push(...(entry.css ?? []));
|
|
154
|
+
}
|
|
155
|
+
for (const key in serverManifest) {
|
|
156
|
+
const entry = serverManifest[key];
|
|
157
|
+
if (!entry.isEntry)
|
|
158
|
+
continue;
|
|
159
|
+
const resources = collectResources(entry, serverManifest);
|
|
160
|
+
const css = resources.css.map((css) => css.src).filter((file) => !filesClientAll.includes(file));
|
|
161
|
+
const assets = resources.assets.map((asset) => asset.src).filter((file) => !filesClientAll.includes(file));
|
|
162
|
+
filesToMove.push(...css, ...assets);
|
|
163
|
+
if (css.length > 0 || assets.length > 0) {
|
|
164
|
+
(0, utils_js_1.assert)(!clientManifest[key]);
|
|
165
|
+
clientManifest[key] = {
|
|
166
|
+
...entry,
|
|
167
|
+
css,
|
|
168
|
+
assets,
|
|
169
|
+
dynamicImports: undefined,
|
|
170
|
+
imports: undefined
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
145
175
|
const clientManifestMod = clientManifest;
|
|
146
176
|
const serverManifestMod = serverManifest;
|
|
147
|
-
|
|
148
|
-
filesToRemove = (0, utils_js_1.unique)(filesToRemove).filter((file) => !
|
|
149
|
-
return { clientManifestMod, serverManifestMod,
|
|
177
|
+
filesToMove = (0, utils_js_1.unique)(filesToMove);
|
|
178
|
+
filesToRemove = (0, utils_js_1.unique)(filesToRemove).filter((file) => !filesToMove.includes(file));
|
|
179
|
+
return { clientManifestMod, serverManifestMod, filesToMove, filesToRemove };
|
|
150
180
|
}
|
|
151
181
|
function getPageId(key) {
|
|
152
182
|
// Normalize from:
|
|
@@ -22,6 +22,7 @@ const getFilePath_js_1 = require("../shared/getFilePath.js");
|
|
|
22
22
|
const getConfigValueBuildTime_js_1 = require("../../../shared/page-configs/getConfigValueBuildTime.js");
|
|
23
23
|
const getOutDirs_js_1 = require("../shared/getOutDirs.js");
|
|
24
24
|
const viteIsSSR_js_1 = require("../shared/viteIsSSR.js");
|
|
25
|
+
const commonConfig_js_1 = require("./commonConfig.js");
|
|
25
26
|
// @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
|
|
26
27
|
const importMetaUrl = `file://${__filename}`;
|
|
27
28
|
const require_ = (0, module_1.createRequire)(importMetaUrl);
|
|
@@ -63,11 +64,12 @@ function buildConfig() {
|
|
|
63
64
|
order: 'post',
|
|
64
65
|
handler(config) {
|
|
65
66
|
(0, utils_js_1.onSetupBuild)();
|
|
67
|
+
const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
|
|
66
68
|
return {
|
|
67
69
|
build: {
|
|
68
70
|
outDir: (0, getOutDirs_js_1.resolveOutDir)(config),
|
|
69
71
|
manifest: manifestTempFile,
|
|
70
|
-
copyPublicDir:
|
|
72
|
+
copyPublicDir: vike.config.viteEnvironmentAPI
|
|
71
73
|
? // Already set by buildApp() plugin
|
|
72
74
|
undefined
|
|
73
75
|
: !(0, viteIsSSR_js_1.viteIsSSR)(config)
|
|
@@ -86,6 +88,9 @@ function buildConfig() {
|
|
|
86
88
|
{
|
|
87
89
|
name: 'vike:buildConfig:pre',
|
|
88
90
|
apply: 'build',
|
|
91
|
+
applyToEnvironment(env) {
|
|
92
|
+
return env.name === 'ssr';
|
|
93
|
+
},
|
|
89
94
|
// Make sure other writeBundle() hooks are called after this writeBundle() hook.
|
|
90
95
|
// - set_ASSETS_MANIFEST() needs to be called before dist/server/ code is executed.
|
|
91
96
|
// - For example, the writeBundle() hook of vite-plugin-vercel needs to be called after this writeBundle() hook, otherwise: https://github.com/vikejs/vike/issues/1527
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.commonConfig = commonConfig;
|
|
7
|
+
exports.getVikeConfigPublic = getVikeConfigPublic;
|
|
7
8
|
const vite_1 = require("vite");
|
|
8
9
|
const utils_js_1 = require("../utils.js");
|
|
9
10
|
const buildConfig_js_1 = require("./buildConfig.js");
|
|
@@ -35,7 +36,7 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
35
36
|
_isDev: isDev,
|
|
36
37
|
_root: root,
|
|
37
38
|
_vikeVitePluginOptions: vikeVitePluginOptions,
|
|
38
|
-
|
|
39
|
+
_vike: {
|
|
39
40
|
pages: vikeConfig.pages,
|
|
40
41
|
config: vikeConfig.global.config
|
|
41
42
|
},
|
|
@@ -173,3 +174,18 @@ function temp_supportOldInterface(config) {
|
|
|
173
174
|
}
|
|
174
175
|
(0, utils_js_1.assert)(false);
|
|
175
176
|
}
|
|
177
|
+
// TODO/soon rename:
|
|
178
|
+
// - `getVikeConfig()` => `resolveVikeConfig()` ?
|
|
179
|
+
// - `getVikeConfigPublic()` => `getVikeConfig()`
|
|
180
|
+
// - `VikeConfigPublic` => `VikeConfig` ?
|
|
181
|
+
// - `VikeConfigObject` => `VikeConfigInternal` ?
|
|
182
|
+
/**
|
|
183
|
+
* Get all the information Vike knows about the app in your Vite plugin.
|
|
184
|
+
*
|
|
185
|
+
* https://vike.dev/getVikeConfig
|
|
186
|
+
*/
|
|
187
|
+
function getVikeConfigPublic(config) {
|
|
188
|
+
const vikeConfig = config._vike;
|
|
189
|
+
(0, utils_js_1.assert)(vikeConfig);
|
|
190
|
+
return vikeConfig;
|
|
191
|
+
}
|
|
@@ -50,7 +50,7 @@ async function getPageDeps(config, pageConfigs) {
|
|
|
50
50
|
sources
|
|
51
51
|
.filter((c) => !c.isOverriden)
|
|
52
52
|
.forEach((configValueSource) => {
|
|
53
|
-
if (!configValueSource.
|
|
53
|
+
if (!configValueSource.valueIsLoadedWithImport && !configValueSource.valueIsFilePath)
|
|
54
54
|
return;
|
|
55
55
|
const { definedAtFilePath, configEnv } = configValueSource;
|
|
56
56
|
if (!configEnv.client)
|
|
@@ -6,6 +6,7 @@ const utils_js_1 = require("../utils.js");
|
|
|
6
6
|
const rollupSourceMap_js_1 = require("../shared/rollupSourceMap.js");
|
|
7
7
|
const getFilePath_js_1 = require("../shared/getFilePath.js");
|
|
8
8
|
const normalizeId_js_1 = require("../shared/normalizeId.js");
|
|
9
|
+
const viteIsSSR_js_1 = require("../shared/viteIsSSR.js");
|
|
9
10
|
// TODO/enventually: (after we implemented vike.config.js)
|
|
10
11
|
// - Make import.meta.env work inside +config.js
|
|
11
12
|
// - For it to work, we'll probably need the user to define the settings (e.g. `envDir`) for loadEnv() inside vike.config.js instead of vite.config.js
|
|
@@ -38,7 +39,7 @@ function envVarsPlugin() {
|
|
|
38
39
|
if (!code.includes('import.meta.env.'))
|
|
39
40
|
return;
|
|
40
41
|
const isBuild = config.command === 'build';
|
|
41
|
-
const isClientSide =
|
|
42
|
+
const isClientSide = !(0, viteIsSSR_js_1.viteIsSSR_safe)(config, options);
|
|
42
43
|
Object.entries(envsAll)
|
|
43
44
|
.filter(([key]) => {
|
|
44
45
|
// Already handled by Vite
|
|
@@ -84,20 +85,3 @@ function envVarsPlugin() {
|
|
|
84
85
|
function applyEnvVar(envStatementRegEx, envVal, code) {
|
|
85
86
|
return code.replace(envStatementRegEx, JSON.stringify(envVal));
|
|
86
87
|
}
|
|
87
|
-
function getIsClientSide(config, options) {
|
|
88
|
-
const isBuild = config.command === 'build';
|
|
89
|
-
if (isBuild) {
|
|
90
|
-
(0, utils_js_1.assert)(typeof config.build.ssr === 'boolean');
|
|
91
|
-
const isServerSide = config.build.ssr;
|
|
92
|
-
if (options !== undefined) {
|
|
93
|
-
(0, utils_js_1.assert)(options.ssr === isServerSide);
|
|
94
|
-
}
|
|
95
|
-
return !isServerSide;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
(0, utils_js_1.assert)(config.build.ssr === false);
|
|
99
|
-
(0, utils_js_1.assert)(typeof options?.ssr === 'boolean');
|
|
100
|
-
const isServerSide = options.ssr;
|
|
101
|
-
return !isServerSide;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
@@ -48,7 +48,7 @@ function extractAssetsPlugin() {
|
|
|
48
48
|
}
|
|
49
49
|
// TODO/now: add meta.default
|
|
50
50
|
(0, utils_js_1.assert)(vikeConfig.global.config.includeAssetsImportedByServer ?? true);
|
|
51
|
-
(0, utils_js_1.assert)(!(0, viteIsSSR_js_1.
|
|
51
|
+
(0, utils_js_1.assert)(!(0, viteIsSSR_js_1.viteIsSSR_safe)(config, options));
|
|
52
52
|
const importStatements = await (0, parseEsModule_js_1.getImportStatements)(src);
|
|
53
53
|
const moduleNames = getImportedModules(importStatements);
|
|
54
54
|
const code = moduleNames.map((moduleName) => `import '${moduleName}';`).join('\n');
|
|
@@ -65,7 +65,7 @@ function extractAssetsPlugin() {
|
|
|
65
65
|
// - Vite's `vite:resolve` plugin; https://github.com/vitejs/vite/blob/d649daba7682791178b711d9a3e44a6b5d00990c/packages/vite/src/node/plugins/resolve.ts#L105
|
|
66
66
|
enforce: 'pre',
|
|
67
67
|
async resolveId(source, importer, options) {
|
|
68
|
-
if ((0, viteIsSSR_js_1.
|
|
68
|
+
if ((0, viteIsSSR_js_1.viteIsSSR_safe)(config, options)) {
|
|
69
69
|
// When building for the server, there should never be a `?extractAssets` query
|
|
70
70
|
(0, utils_js_1.assert)(!extractAssetsRE.test(source));
|
|
71
71
|
(0, utils_js_1.assert)(importer === undefined || !extractAssetsRE.test(importer));
|
|
@@ -11,7 +11,7 @@ const viteIsSSR_js_1 = require("../shared/viteIsSSR.js");
|
|
|
11
11
|
const extractExportNamesRE = /(\?|&)extractExportNames(?:&|$)/;
|
|
12
12
|
exports.extractExportNamesRE = extractExportNamesRE;
|
|
13
13
|
const debug = (0, utils_js_1.createDebugger)('vike:extractExportNames');
|
|
14
|
-
const globalObject = (0, utils_js_1.getGlobalObject)('extractExportNamesPlugin.ts', {});
|
|
14
|
+
const globalObject = (0, utils_js_1.getGlobalObject)('plugins/extractExportNamesPlugin.ts', {});
|
|
15
15
|
function extractExportNamesPlugin() {
|
|
16
16
|
let isDev = false;
|
|
17
17
|
return {
|
package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js
CHANGED
|
@@ -68,8 +68,8 @@ function getConfigRequireValue(plusFile) {
|
|
|
68
68
|
const confVal = (0, getVikeConfig_js_1.getConfVal)(plusFile, 'require');
|
|
69
69
|
if (!confVal)
|
|
70
70
|
return null;
|
|
71
|
-
(0, utils_js_1.assert)(confVal.
|
|
72
|
-
const require = confVal.
|
|
71
|
+
(0, utils_js_1.assert)(confVal.valueIsLoaded);
|
|
72
|
+
const require = confVal.value;
|
|
73
73
|
const { filePathToShowToUserResolved } = plusFile.filePath;
|
|
74
74
|
(0, utils_js_1.assert)(filePathToShowToUserResolved);
|
|
75
75
|
(0, utils_js_1.assertUsage)((0, isObjectOfStrings_js_1.isObjectOfStrings)(require), `The setting ${picocolors_1.default.bold('require')} defined at ${filePathToShowToUserResolved} should be an object with string values (${picocolors_1.default.bold('Record<string, string>')}).`);
|
|
@@ -79,8 +79,8 @@ function getNameValue(plusFile) {
|
|
|
79
79
|
const confVal = (0, getVikeConfig_js_1.getConfVal)(plusFile, 'name');
|
|
80
80
|
if (!confVal)
|
|
81
81
|
return null;
|
|
82
|
-
(0, utils_js_1.assert)(confVal.
|
|
83
|
-
const name = confVal.
|
|
82
|
+
(0, utils_js_1.assert)(confVal.valueIsLoaded);
|
|
83
|
+
const name = confVal.value;
|
|
84
84
|
const filePathToShowToUser = getFilePathToShowToUser(plusFile);
|
|
85
85
|
(0, utils_js_1.assertUsage)(typeof name === 'string', `The setting ${picocolors_1.default.bold('name')} defined at ${filePathToShowToUser} should be a string.`);
|
|
86
86
|
return name;
|
|
@@ -33,7 +33,12 @@ const configDefinitionsBuiltIn = {
|
|
|
33
33
|
cumulative: true
|
|
34
34
|
},
|
|
35
35
|
route: {
|
|
36
|
-
env: {
|
|
36
|
+
env: {
|
|
37
|
+
server: true,
|
|
38
|
+
client: 'if-client-routing',
|
|
39
|
+
// For vite-plugin-vercel
|
|
40
|
+
config: true
|
|
41
|
+
},
|
|
37
42
|
eager: true
|
|
38
43
|
},
|
|
39
44
|
guard: {
|
package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.isPlusFile = isPlusFile;
|
|
|
8
8
|
exports.getPlusFileValueConfigName = getPlusFileValueConfigName;
|
|
9
9
|
const utils_js_1 = require("../../../../utils.js");
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const
|
|
11
|
+
const tinyglobby_1 = require("tinyglobby");
|
|
12
12
|
const child_process_1 = require("child_process");
|
|
13
13
|
const util_1 = require("util");
|
|
14
14
|
const transpileAndExecuteFile_js_1 = require("./transpileAndExecuteFile.js");
|
|
@@ -16,7 +16,7 @@ const getEnvVarObject_js_1 = require("../../../../shared/getEnvVarObject.js");
|
|
|
16
16
|
const execA = (0, util_1.promisify)(child_process_1.exec);
|
|
17
17
|
const debug = (0, utils_js_1.createDebugger)('vike:crawl');
|
|
18
18
|
(0, utils_js_1.assertIsNotProductionRuntime)();
|
|
19
|
-
(0, utils_js_1.assertIsSingleModuleInstance)('crawlPlusFiles.ts');
|
|
19
|
+
(0, utils_js_1.assertIsSingleModuleInstance)('getVikeConfig/crawlPlusFiles.ts');
|
|
20
20
|
let gitIsNotUsable = false;
|
|
21
21
|
async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem) {
|
|
22
22
|
(0, utils_js_1.assertPosixPath)(userRootDir);
|
|
@@ -40,10 +40,10 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem) {
|
|
|
40
40
|
// Crawl
|
|
41
41
|
const filesGit = !isGitCrawlDisabled() && (await gitLsFiles(userRootDir, outDirRelativeFromUserRootDir));
|
|
42
42
|
const filesGitNothingFound = !filesGit || filesGit.length === 0;
|
|
43
|
-
const filesGlob = (filesGitNothingFound || debug.isActivated) && (await
|
|
43
|
+
const filesGlob = (filesGitNothingFound || debug.isActivated) && (await tinyglobby(userRootDir, outDirRelativeFromUserRootDir));
|
|
44
44
|
let files = !filesGitNothingFound
|
|
45
45
|
? filesGit
|
|
46
|
-
: // Fallback to
|
|
46
|
+
: // Fallback to tinyglobby for users that dynamically generate plus files. (Assuming that no plus file is found because of the user's .gitignore list.)
|
|
47
47
|
filesGlob;
|
|
48
48
|
(0, utils_js_1.assert)(files);
|
|
49
49
|
if (debug.isActivated)
|
|
@@ -52,7 +52,7 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem) {
|
|
|
52
52
|
files = files.filter((filePath) => !(0, transpileAndExecuteFile_js_1.isTemporaryBuildFile)(filePath));
|
|
53
53
|
// Normalize
|
|
54
54
|
const plusFiles = files.map((filePath) => {
|
|
55
|
-
// Both `$ git-ls files` and
|
|
55
|
+
// Both `$ git-ls files` and tinyglobby return posix paths
|
|
56
56
|
(0, utils_js_1.assertPosixPath)(filePath);
|
|
57
57
|
(0, utils_js_1.assert)(!filePath.startsWith(userRootDir));
|
|
58
58
|
const filePathAbsoluteUserRootDir = path_1.default.posix.join('/', filePath);
|
|
@@ -61,7 +61,7 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem) {
|
|
|
61
61
|
});
|
|
62
62
|
return plusFiles;
|
|
63
63
|
}
|
|
64
|
-
// Same as
|
|
64
|
+
// Same as tinyglobby() but using `$ git ls-files`
|
|
65
65
|
async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
|
|
66
66
|
if (gitIsNotUsable)
|
|
67
67
|
return null;
|
|
@@ -128,15 +128,16 @@ async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
|
|
|
128
128
|
}
|
|
129
129
|
return files;
|
|
130
130
|
}
|
|
131
|
-
// Same as gitLsFiles() but using
|
|
132
|
-
async function
|
|
131
|
+
// Same as gitLsFiles() but using tinyglobby
|
|
132
|
+
async function tinyglobby(userRootDir, outDirRelativeFromUserRootDir) {
|
|
133
133
|
const pattern = `**/+*.${utils_js_1.scriptFileExtensions}`;
|
|
134
134
|
const options = {
|
|
135
135
|
ignore: getIgnoreAsPatterns(outDirRelativeFromUserRootDir),
|
|
136
136
|
cwd: userRootDir,
|
|
137
|
-
dot: false
|
|
137
|
+
dot: false,
|
|
138
|
+
expandDirectories: false
|
|
138
139
|
};
|
|
139
|
-
const files = await (0,
|
|
140
|
+
const files = await (0, tinyglobby_1.glob)(pattern, options);
|
|
140
141
|
// Make build deterministic, in order to get a stable generated hash for dist/client/assets/entries/entry-client-routing.${hash}.js
|
|
141
142
|
// https://github.com/vikejs/vike/pull/1750
|
|
142
143
|
files.sort();
|
|
@@ -168,14 +168,17 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports) {
|
|
|
168
168
|
// - vike@0.4.162 started soft-requiring Vike extensions to set the name config.
|
|
169
169
|
// - In practice, it seems like it requires some (non-trivial?) refactoring.
|
|
170
170
|
isVikeExtensionImport;
|
|
171
|
+
// Externalize npm package imports
|
|
171
172
|
(0, utils_js_1.assertPosixPath)(importPathResolved);
|
|
172
|
-
const
|
|
173
|
+
const isNpmPkgImport = importPathResolved.includes('/node_modules/') ||
|
|
174
|
+
// Linked npm packages
|
|
175
|
+
!importPathResolved.startsWith(userRootDir);
|
|
173
176
|
const isExternal = isPointerImport ||
|
|
174
177
|
// 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.)
|
|
175
|
-
|
|
178
|
+
isNpmPkgImport;
|
|
176
179
|
if (!isExternal) {
|
|
177
180
|
// User-land config code (i.e. not runtime code) => let esbuild transpile it
|
|
178
|
-
(0, utils_js_1.assert)(!isPointerImport && !
|
|
181
|
+
(0, utils_js_1.assert)(!isPointerImport && !isNpmPkgImport);
|
|
179
182
|
if (debug.isActivated)
|
|
180
183
|
debug('onResolved()', { args, resolved, isPointerImport, isExternal });
|
|
181
184
|
return resolved;
|
|
@@ -194,7 +197,7 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports) {
|
|
|
194
197
|
userRootDir
|
|
195
198
|
});
|
|
196
199
|
// We assuming that path aliases always resolve inside `userRootDir`.
|
|
197
|
-
if (filePathAbsoluteUserRootDir && !
|
|
200
|
+
if (filePathAbsoluteUserRootDir && !isNpmPkgImport) {
|
|
198
201
|
// `importPathOriginal` is a path alias.
|
|
199
202
|
// - We have to use esbuild's path alias resolution, because:
|
|
200
203
|
// - Vike doesn't resolve path aliases at all.
|
|
@@ -216,7 +219,7 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports) {
|
|
|
216
219
|
// Import of runtime code => handled by Vike
|
|
217
220
|
isPointerImport ||
|
|
218
221
|
// Import of config code => loaded by Node.js at build-time
|
|
219
|
-
|
|
222
|
+
isNpmPkgImport);
|
|
220
223
|
pointerImports[importPathTranspiled] = isPointerImport;
|
|
221
224
|
return { external: true, path: importPathTranspiled };
|
|
222
225
|
});
|