* Applies the plugin by registering its hooks on the compiler. * @param {Compiler} compiler the compiler instance * @returns {void}
(compiler)
| 195 | * @returns {void} |
| 196 | */ |
| 197 | apply(compiler) { |
| 198 | compiler.hooks.compilation.tap( |
| 199 | PLUGIN_NAME, |
| 200 | (compilation, { normalModuleFactory }) => { |
| 201 | const hooks = CssModulesPlugin.getCompilationHooks(compilation); |
| 202 | compilation.dependencyFactories.set( |
| 203 | CssImportDependency, |
| 204 | normalModuleFactory |
| 205 | ); |
| 206 | compilation.dependencyTemplates.set( |
| 207 | CssImportDependency, |
| 208 | new CssImportDependency.Template() |
| 209 | ); |
| 210 | compilation.dependencyFactories.set( |
| 211 | CssUrlDependency, |
| 212 | normalModuleFactory |
| 213 | ); |
| 214 | compilation.dependencyTemplates.set( |
| 215 | CssUrlDependency, |
| 216 | new CssUrlDependency.Template() |
| 217 | ); |
| 218 | compilation.dependencyFactories.set( |
| 219 | CssIcssImportDependency, |
| 220 | normalModuleFactory |
| 221 | ); |
| 222 | compilation.dependencyTemplates.set( |
| 223 | CssIcssImportDependency, |
| 224 | new CssIcssImportDependency.Template() |
| 225 | ); |
| 226 | compilation.dependencyTemplates.set( |
| 227 | CssIcssExportDependency, |
| 228 | new CssIcssExportDependency.Template() |
| 229 | ); |
| 230 | compilation.dependencyTemplates.set( |
| 231 | CssIcssSymbolDependency, |
| 232 | new CssIcssSymbolDependency.Template() |
| 233 | ); |
| 234 | compilation.dependencyTemplates.set( |
| 235 | StaticExportsDependency, |
| 236 | new StaticExportsDependency.Template() |
| 237 | ); |
| 238 | for (const type of [ |
| 239 | CSS_MODULE_TYPE, |
| 240 | CSS_MODULE_TYPE_GLOBAL, |
| 241 | CSS_MODULE_TYPE_MODULE, |
| 242 | CSS_MODULE_TYPE_AUTO |
| 243 | ]) { |
| 244 | normalModuleFactory.hooks.createParser |
| 245 | .for(type) |
| 246 | .tap(PLUGIN_NAME, (parserOptions) => { |
| 247 | /** @type {undefined | "global" | "local" | "auto"} */ |
| 248 | let defaultMode; |
| 249 | |
| 250 | switch (type) { |
| 251 | case CSS_MODULE_TYPE: { |
| 252 | compiler.validate( |
| 253 | () => getSchema("CssParserOptions"), |
| 254 | parserOptions, |
nothing calls this directly
no test coverage detected