MCPcopy
hub / github.com/webpack/webpack / apply

Method apply

lib/cache/ResolverCachePlugin.js:113–458  ·  view source on GitHub ↗

* Applies the plugin by registering its hooks on the compiler. * @param {Compiler} compiler the compiler instance * @returns {void}

(compiler)

Source from the content-addressed store, hash-verified

111 * @returns {void}
112 */
113 apply(compiler) {
114 const cache = compiler.getCache(PLUGIN_NAME);
115 /** @type {FileSystemInfo} */
116 let fileSystemInfo;
117 /** @type {SnapshotOptions | undefined} */
118 let snapshotOptions;
119 let realResolves = 0;
120 let cachedResolves = 0;
121 let cacheInvalidResolves = 0;
122 let concurrentResolves = 0;
123 compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
124 snapshotOptions = compilation.options.snapshot.resolve;
125 fileSystemInfo = compilation.fileSystemInfo;
126 compilation.hooks.finishModules.tap(PLUGIN_NAME, () => {
127 if (realResolves + cachedResolves > 0) {
128 const logger = compilation.getLogger(`webpack.${PLUGIN_NAME}`);
129 logger.log(
130 `${Math.round(
131 (100 * realResolves) / (realResolves + cachedResolves)
132 )}% really resolved (${realResolves} real resolves with ${cacheInvalidResolves} cached but invalid, ${cachedResolves} cached valid, ${concurrentResolves} concurrent)`
133 );
134 realResolves = 0;
135 cachedResolves = 0;
136 cacheInvalidResolves = 0;
137 concurrentResolves = 0;
138 }
139 });
140 });
141
142 /** @typedef {(err?: Error | null, resolveRequest?: ResolveRequest | null) => void} Callback */
143 /** @typedef {ResolveRequest & { _ResolverCachePluginCacheMiss: true }} ResolveRequestWithCacheMiss */
144
145 /**
146 * Processes the provided item cache.
147 * @param {ItemCacheFacade} itemCache cache
148 * @param {Resolver} resolver the resolver
149 * @param {ResolveContext} resolveContext context for resolving meta info
150 * @param {ResolveRequest} request the request info object
151 * @param {Callback} callback callback function
152 * @returns {void}
153 */
154 const doRealResolve = (
155 itemCache,
156 resolver,
157 resolveContext,
158 request,
159 callback
160 ) => {
161 realResolves++;
162 const newRequest =
163 /** @type {ResolveRequestWithCacheMiss} */
164 ({
165 _ResolverCachePluginCacheMiss: true,
166 ...request
167 });
168 /** @type {ResolveContext} */
169 const newResolveContext = {
170 ...resolveContext,

Callers

nothing calls this directly

Calls 5

tapMethod · 0.80
logMethod · 0.80
interceptMethod · 0.80
getLoggerMethod · 0.65
getCacheMethod · 0.45

Tested by

no test coverage detected