Home / Function/ tryFsResolve() — vite Function Reference

tryFsResolve() — vite Function Reference

Architecture documentation for the tryFsResolve() function in resolve.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  2c262e8e_4e5d_80f3_98ab_102647c58f78["tryFsResolve()"]
  dcff87b0_a8ea_57a2_3b29_a7b8f19986f3["resolve.ts"]
  2c262e8e_4e5d_80f3_98ab_102647c58f78 -->|defined in| dcff87b0_a8ea_57a2_3b29_a7b8f19986f3
  33523ba7_f2f0_89b0_b6ac_912e8d2dc8bc["assetImportMetaUrlPlugin()"]
  33523ba7_f2f0_89b0_b6ac_912e8d2dc8bc -->|calls| 2c262e8e_4e5d_80f3_98ab_102647c58f78
  ff420344_db87_ddaa_de80_eb7cf9a4644d["resolvePackageEntry()"]
  ff420344_db87_ddaa_de80_eb7cf9a4644d -->|calls| 2c262e8e_4e5d_80f3_98ab_102647c58f78
  b2e6fca1_a66d_30a7_9a9e_9c6de6c46d25["resolveDeepImport()"]
  b2e6fca1_a66d_30a7_9a9e_9c6de6c46d25 -->|calls| 2c262e8e_4e5d_80f3_98ab_102647c58f78
  5a1e6eac_e85e_4779_6f3b_704e48e41b29["tryResolveBrowserEntry()"]
  5a1e6eac_e85e_4779_6f3b_704e48e41b29 -->|calls| 2c262e8e_4e5d_80f3_98ab_102647c58f78
  cc381763_acbd_6aeb_4970_907e43d5b95f["workerImportMetaUrlPlugin()"]
  cc381763_acbd_6aeb_4970_907e43d5b95f -->|calls| 2c262e8e_4e5d_80f3_98ab_102647c58f78
  50ac7e51_9f94_e985_bfec_ae95273b23b0["isInNodeModules()"]
  2c262e8e_4e5d_80f3_98ab_102647c58f78 -->|calls| 50ac7e51_9f94_e985_bfec_ae95273b23b0
  8ac17738_0641_9534_aa4e_c559f410561a["tryCleanFsResolve()"]
  2c262e8e_4e5d_80f3_98ab_102647c58f78 -->|calls| 8ac17738_0641_9534_aa4e_c559f410561a
  09d0a948_4a89_8bbc_50ce_129fc70dbd66["splitFileAndPostfix()"]
  2c262e8e_4e5d_80f3_98ab_102647c58f78 -->|calls| 09d0a948_4a89_8bbc_50ce_129fc70dbd66
  style 2c262e8e_4e5d_80f3_98ab_102647c58f78 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/plugins/resolve.ts lines 550–573

export function tryFsResolve(
  fsPath: string,
  options: InternalResolveOptions,
  tryIndex = true,
  skipPackageJson = false,
): string | undefined {
  // Dependencies like es5-ext use `#` in their paths. We don't support `#` in user
  // source code so we only need to perform the check for dependencies.
  // We don't support `?` in node_modules paths, so we only need to check in this branch.
  const hashIndex = fsPath.indexOf('#')
  if (hashIndex >= 0 && isInNodeModules(fsPath)) {
    const queryIndex = fsPath.indexOf('?')
    // We only need to check foo#bar?baz and foo#bar, ignore foo?bar#baz
    if (queryIndex < 0 || queryIndex > hashIndex) {
      const file = queryIndex > hashIndex ? fsPath.slice(0, queryIndex) : fsPath
      const res = tryCleanFsResolve(file, options, tryIndex, skipPackageJson)
      if (res) return res + fsPath.slice(file.length)
    }
  }

  const { file, postfix } = splitFileAndPostfix(fsPath)
  const res = tryCleanFsResolve(file, options, tryIndex, skipPackageJson)
  if (res) return res + postfix
}

Domain

Subdomains

Frequently Asked Questions

What does tryFsResolve() do?
tryFsResolve() is a function in the vite codebase, defined in packages/vite/src/node/plugins/resolve.ts.
Where is tryFsResolve() defined?
tryFsResolve() is defined in packages/vite/src/node/plugins/resolve.ts at line 550.
What does tryFsResolve() call?
tryFsResolve() calls 3 function(s): isInNodeModules, splitFileAndPostfix, tryCleanFsResolve.
What calls tryFsResolve()?
tryFsResolve() is called by 5 function(s): assetImportMetaUrlPlugin, resolveDeepImport, resolvePackageEntry, tryResolveBrowserEntry, workerImportMetaUrlPlugin.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free