UNPKG

vike

Version:

The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.

108 lines (107 loc) 5.89 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.devConfig = devConfig; exports.logDockerHint = logDockerHint; const determineOptimizeDeps_js_1 = require("./determineOptimizeDeps.js"); const determineFsAllowList_js_1 = require("./determineFsAllowList.js"); const addSsrMiddleware_js_1 = require("../../shared/addSsrMiddleware.js"); const utils_js_1 = require("../../utils.js"); const loggerVite_js_1 = require("../../shared/loggerVite.js"); const isErrorDebug_js_1 = require("../../../shared/isErrorDebug.js"); const getHttpRequestAsyncStore_js_1 = require("../../shared/getHttpRequestAsyncStore.js"); const picocolors_1 = __importDefault(require("@brillout/picocolors")); if ((0, isErrorDebug_js_1.isErrorDebug)()) { Error.stackTraceLimit = Infinity; } function devConfig() { let config; return [ { name: 'vike:devConfig', apply: utils_js_1.applyDev, config() { return { appType: 'custom', // TODO:v1-release: remove (AFAICT we only need to use config.optimizeDeps for the old design) optimizeDeps: { exclude: [ // We exclude Vike's client runtime to be able to use Vite's import.meta.glob() 'vike/client', 'vike/client/router', // It seems like client-side/isomorphic imports also need to be excluded, in order to avoid the following: // ``` // Client runtime loaded twice https://vike.dev/client-runtime-duplicated // ``` 'vike/routing', 'vike/getPageContext', // We exclude @brillout/json-serializer and @brillout/picocolors to avoid: // ``` // 9:28:58 AM [vite] ✨ new dependencies optimized: @brillout/json-serializer/parse // 9:28:58 AM [vite] ✨ optimized dependencies changed. reloading // ``` '@brillout/json-serializer/parse', '@brillout/json-serializer/stringify', '@brillout/picocolors', // We exclude all packages that depend on any optimizeDeps.exclude entry because, otherwise, the entry cannot be resolved when using pnpm. For example: // ``` // Failed to resolve import "@brillout/json-serializer/parse" from "../../packages/vike-react-query/dist/renderer/VikeReactQueryWrapper.js". Does the file exist? // 343| // ../../node_modules/.pnpm/react-streaming@0.3.16_react-dom@18.2.0_react@18.2.0/node_modules/react-streaming/dist/esm/client/useAsync.js // 344| import { parse as parse2 } from "@brillout/json-serializer/parse"; // ``` // The source map is confusing, the import actually lives at node_modules/.vite/deps/vike-react-query_renderer_VikeReactQueryWrapper.js which contains: // ```js // // ../../node_modules/.pnpm/react-streaming@0.3.16_react-dom@18.2.0_react@18.2.0/node_modules/react-streaming/dist/esm/client/useAsync.js // import { parse as parse2 } from "@brillout/json-serializer/parse"; // ``` 'react-streaming' ] } }; }, async configResolved(config_) { config = config_; await (0, determineOptimizeDeps_js_1.determineOptimizeDeps)(config); await (0, determineFsAllowList_js_1.determineFsAllowList)(config); if (!(0, isErrorDebug_js_1.isErrorDebug)()) { await (0, getHttpRequestAsyncStore_js_1.installHttpRequestAsyncStore)(); (0, loggerVite_js_1.improveViteLogs)(config); } logDockerHint(config.server.host); } }, { name: 'vike:devConfig:addSsrMiddleware', apply: utils_js_1.applyDev, // The SSR middleware should be last middleware enforce: 'post', configureServer: { order: 'post', handler(server) { const hasHonoViteDevServer = !!config.plugins.find((p) => p.name === '@hono/vite-dev-server'); if (config.server.middlewareMode || hasHonoViteDevServer) return; return () => { (0, addSsrMiddleware_js_1.addSsrMiddleware)(server.middlewares, config, false, null); }; } }, // Setting `configResolved.clearScreen = false` doesn't work config: { order: 'post', handler() { if ((0, isErrorDebug_js_1.isErrorDebug)()) { return { clearScreen: false }; } } } } ]; } function logDockerHint(configHost) { if ((0, utils_js_1.isDocker)()) { (0, utils_js_1.assertWarning)(configHost, `Your app seems to be running inside a Docker or Podman container but ${picocolors_1.default.cyan('--host')} isn't set which means that your Vike app won't be accessible from outside the container, see https://vike.dev/docker`, { onlyOnce: true }); } }