createIsConfiguredAsExternal() — vite Function Reference
Architecture documentation for the createIsConfiguredAsExternal() function in external.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD b2fa7ec5_0e1d_bf18_722b_4bad78d1ff9b["createIsConfiguredAsExternal()"] b64390ad_e6bf_4b1e_f7f0_39d49791e7e0["external.ts"] b2fa7ec5_0e1d_bf18_722b_4bad78d1ff9b -->|defined in| b64390ad_e6bf_4b1e_f7f0_39d49791e7e0 edf612e5_7fcd_cfe5_cc15_2e8f0b2387e1["createIsExternal()"] edf612e5_7fcd_cfe5_cc15_2e8f0b2387e1 -->|calls| b2fa7ec5_0e1d_bf18_722b_4bad78d1ff9b f46818a5_7e0a_9422_e33c_6ec2d095ddda["createIsExternal()"] f46818a5_7e0a_9422_e33c_6ec2d095ddda -->|calls| b2fa7ec5_0e1d_bf18_722b_4bad78d1ff9b 310b19b4_2716_b45b_716d_edfca3064152["tryNodeResolve()"] b2fa7ec5_0e1d_bf18_722b_4bad78d1ff9b -->|calls| 310b19b4_2716_b45b_716d_edfca3064152 50ac7e51_9f94_e985_bfec_ae95273b23b0["isInNodeModules()"] b2fa7ec5_0e1d_bf18_722b_4bad78d1ff9b -->|calls| 50ac7e51_9f94_e985_bfec_ae95273b23b0 d85d2c88_bba8_7bb8_8124_cb7eb5324a02["canExternalizeFile()"] b2fa7ec5_0e1d_bf18_722b_4bad78d1ff9b -->|calls| d85d2c88_bba8_7bb8_8124_cb7eb5324a02 cb293321_1174_554d_b5ce_f153b06a2fb4["getNpmPackageName()"] b2fa7ec5_0e1d_bf18_722b_4bad78d1ff9b -->|calls| cb293321_1174_554d_b5ce_f153b06a2fb4 style b2fa7ec5_0e1d_bf18_722b_4bad78d1ff9b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/vite/src/node/external.ts lines 35–125
export function createIsConfiguredAsExternal(
environment: PartialEnvironment,
): (id: string, importer?: string) => boolean {
const { config } = environment
const { root, resolve } = config
const { external, noExternal } = resolve
const noExternalFilter =
typeof noExternal !== 'boolean' &&
!(Array.isArray(noExternal) && noExternal.length === 0) &&
createFilter(undefined, noExternal, { resolve: false })
const targetConditions = resolve.externalConditions
const resolveOptions: InternalResolveOptions = {
...resolve,
root,
isProduction: false,
isBuild: true,
conditions: targetConditions,
}
const isExternalizable = (
id: string,
importer: string | undefined,
configuredAsExternal: boolean,
): boolean => {
if (!bareImportRE.test(id) || id.includes('\0')) {
return false
}
try {
const resolved = tryNodeResolve(
id,
// Skip passing importer in build to avoid externalizing non-hoisted dependencies
// unresolvable from root (which would be unresolvable from output bundles also)
config.command === 'build' ? undefined : importer,
resolveOptions,
undefined,
false,
)
if (!resolved) {
return false
}
// Only allow linked packages to be externalized
// if they are explicitly configured as external
if (!configuredAsExternal && !isInNodeModules(resolved.id)) {
return false
}
return canExternalizeFile(resolved.id)
} catch {
debug?.(
`Failed to node resolve "${id}". Skipping externalizing it by default.`,
)
// may be an invalid import that's resolved by a plugin
return false
}
}
// Returns true if it is configured as external, false if it is filtered
// by noExternal and undefined if it isn't affected by the explicit config
return (id: string, importer?: string) => {
if (
// If this id is defined as external, force it as external
// Note that individual package entries are allowed in `external`
external !== true &&
external.includes(id)
) {
return true
}
const pkgName = getNpmPackageName(id)
if (!pkgName) {
return isExternalizable(id, importer, false)
}
if (
// A package name in ssr.external externalizes every
// externalizable package entry
external !== true &&
external.includes(pkgName)
) {
return isExternalizable(id, importer, true)
}
if (typeof noExternal === 'boolean') {
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does createIsConfiguredAsExternal() do?
createIsConfiguredAsExternal() is a function in the vite codebase, defined in packages/vite/src/node/external.ts.
Where is createIsConfiguredAsExternal() defined?
createIsConfiguredAsExternal() is defined in packages/vite/src/node/external.ts at line 35.
What does createIsConfiguredAsExternal() call?
createIsConfiguredAsExternal() calls 4 function(s): canExternalizeFile, getNpmPackageName, isInNodeModules, tryNodeResolve.
What calls createIsConfiguredAsExternal()?
createIsConfiguredAsExternal() is called by 2 function(s): createIsExternal, createIsExternal.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free