MCPcopy
hub / github.com/vitejs/vite / resolveServerOptions

Function resolveServerOptions

packages/vite/src/node/server/index.ts:1207–1337  ·  view source on GitHub ↗
(
  root: string,
  raw: ServerOptions | undefined,
  logger: Logger,
)

Source from the content-addressed store, hash-verified

1205const RESERVED_ALLOWED_HOSTS_CHARACTERS_RE = /[\\"']/
1206
1207export async function resolveServerOptions(
1208 root: string,
1209 raw: ServerOptions | undefined,
1210 logger: Logger,
1211): Promise<ResolvedServerOptions> {
1212 const _server = mergeWithDefaults(
1213 {
1214 ..._serverConfigDefaults,
1215 host: undefined, // do not set here to detect whether host is set or not
1216 sourcemapIgnoreList: isInNodeModules,
1217 },
1218 raw ?? {},
1219 )
1220
1221 setupHmrWsOptionCompat(_server)
1222
1223 const workspaceRoot = searchForWorkspaceRoot(root)
1224 const server: ResolvedServerOptions = {
1225 ..._server,
1226 fs: {
1227 ..._server.fs,
1228 // run searchForWorkspaceRoot only if needed
1229 allow: raw?.fs?.allow ?? [workspaceRoot],
1230 },
1231 sourcemapIgnoreList:
1232 _server.sourcemapIgnoreList === false
1233 ? () => false
1234 : _server.sourcemapIgnoreList,
1235 forwardConsole: await resolveForwardConsoleOptions(_server.forwardConsole),
1236 }
1237
1238 let allowDirs = server.fs.allow
1239
1240 const cwd = searchForPackageRoot(root)
1241 if (process.versions.pnp) {
1242 // running a command fails if cwd doesn't exist and root may not exist
1243 // search for package root to find a path that exists
1244 try {
1245 const enableGlobalCache =
1246 execSync('yarn config get enableGlobalCache', { cwd })
1247 .toString()
1248 .trim() === 'true'
1249 const yarnCacheDir = execSync(
1250 `yarn config get ${enableGlobalCache ? 'globalFolder' : 'cacheFolder'}`,
1251 { cwd },
1252 )
1253 .toString()
1254 .trim()
1255 allowDirs.push(yarnCacheDir)
1256 } catch (e) {
1257 logger.warn(`Get yarn cache dir error: ${e.message}`, {
1258 timestamp: true,
1259 })
1260 }
1261 }
1262
1263 // pnpm's global virtual store (GVS) may place package files outside workspace root.
1264 // Read node_modules/.modules.yaml which pnpm always writes on install — this works

Callers 2

resolveConfigFunction · 0.90
config.spec.tsFile · 0.90

Calls 10

mergeWithDefaultsFunction · 0.90
setupHmrWsOptionCompatFunction · 0.90
searchForWorkspaceRootFunction · 0.90
searchForPackageRootFunction · 0.90
isParentDirectoryFunction · 0.90
resolvedAllowDirFunction · 0.85
parseMethod · 0.80
warnMethod · 0.65
resolveMethod · 0.65

Tested by

no test coverage detected