apply() — vue Function Reference
Architecture documentation for the apply() function in client.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD cfb31c39_d51c_a2b5_4da2_0c5d7c929287["apply()"] e71dc5e5_977d_fb3b_28ae_18c134c7b1ad["onEmit()"] cfb31c39_d51c_a2b5_4da2_0c5d7c929287 -->|calls| e71dc5e5_977d_fb3b_28ae_18c134c7b1ad 1fb82a54_5351_35cf_787c_10e6691c2de1["getAssetName()"] cfb31c39_d51c_a2b5_4da2_0c5d7c929287 -->|calls| 1fb82a54_5351_35cf_787c_10e6691c2de1 e2bc20cb_f578_928b_9bc7_e455a4609eed["stripModuleIdHash()"] cfb31c39_d51c_a2b5_4da2_0c5d7c929287 -->|calls| e2bc20cb_f578_928b_9bc7_e455a4609eed style cfb31c39_d51c_a2b5_4da2_0c5d7c929287 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/server-renderer/src/webpack-plugin/client.ts lines 16–75
apply(compiler) {
const stage = 'PROCESS_ASSETS_STAGE_ADDITIONAL'
onEmit(compiler, 'vue-client-plugin', stage, (compilation, cb) => {
const stats = compilation.getStats().toJson()
const allFiles = uniq(stats.assets.map(a => a.name))
const initialFiles = uniq(
Object.keys(stats.entrypoints)
.map(name => stats.entrypoints[name].assets)
.reduce((assets, all) => all.concat(assets), [])
.map(getAssetName)
.filter(file => isJS(file) || isCSS(file))
)
const asyncFiles = allFiles
.filter(file => isJS(file) || isCSS(file))
.filter(file => initialFiles.indexOf(file) < 0)
const manifest = {
publicPath: stats.publicPath,
all: allFiles,
initial: initialFiles,
async: asyncFiles,
modules: {
/* [identifier: string]: Array<index: number> */
}
}
const assetModules = stats.modules.filter(m => m.assets.length)
const fileToIndex = asset => manifest.all.indexOf(getAssetName(asset))
stats.modules.forEach(m => {
// ignore modules duplicated in multiple chunks
if (m.chunks.length === 1) {
const cid = m.chunks[0]
const chunk = stats.chunks.find(c => c.id === cid)
if (!chunk || !chunk.files) {
return
}
const id = stripModuleIdHash(m.identifier)
const files = (manifest.modules[hash(id)] =
chunk.files.map(fileToIndex))
// find all asset modules associated with the same chunk
assetModules.forEach(m => {
if (m.chunks.some(id => id === cid)) {
files.push.apply(files, m.assets.map(fileToIndex))
}
})
}
})
const json = JSON.stringify(manifest, null, 2)
//@ts-expect-error no type on options
compilation.assets[this.options.filename] = {
source: () => json,
size: () => json.length
}
cb()
})
}
Domain
Subdomains
Source
Frequently Asked Questions
What does apply() do?
apply() is a function in the vue codebase.
What does apply() call?
apply() calls 3 function(s): getAssetName, onEmit, stripModuleIdHash.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free