Skip to content

Commit 7ecdb1a

Browse files
committed
fix(@angular/build): support ESM PostCSS plugins
This change updates the PostCSS plugin loader to support plugins distributed as ES modules. This allows modern PostCSS plugins authored in ESM to be used without import errors.
1 parent a0f45f9 commit 7ecdb1a

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

packages/angular/build/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ export class StylesheetPluginFactory {
227227
const postCssPluginRequire = createRequire(dirname(configPath) + '/');
228228

229229
for (const [pluginName, pluginOptions] of config.plugins) {
230-
const plugin = postCssPluginRequire(pluginName);
230+
const { default: plugin } = await import(postCssPluginRequire.resolve(pluginName));
231231
if (typeof plugin !== 'function' || plugin.postcss !== true) {
232232
throw new Error(`Attempted to load invalid Postcss plugin: "${pluginName}"`);
233233
}

packages/angular_devkit/build_angular/src/tools/webpack/configs/styles.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export async function getStylesConfig(wco: WebpackConfigOptions): Promise<Config
8787
const postCssPluginRequire = createRequire(path.dirname(postcssConfig.configPath) + '/');
8888

8989
for (const [pluginName, pluginOptions] of postcssConfig.config.plugins) {
90-
const plugin = postCssPluginRequire(pluginName);
90+
const { default: plugin } = await import(postCssPluginRequire.resolve(pluginName));
9191
if (typeof plugin !== 'function' || plugin.postcss !== true) {
9292
throw new Error(`Attempted to load invalid Postcss plugin: "${pluginName}"`);
9393
}

0 commit comments

Comments
 (0)