symfony / webpack-encore

A simple but powerful API for processing & compiling assets built around Webpack
https://symfony.com/doc/current/frontend.html
MIT License
2.23k stars 198 forks source link

Overriding the file name for "configureFontRule" or "configureImageRule" doesn't work when using a generator #1221

Open egonolieux opened 1 year ago

egonolieux commented 1 year ago

According to the documentation, a custom callback can be passed to the Encore.configureFontRule() and Encore.configureImageRule() functions: https://github.com/symfony/webpack-encore/blob/main/index.js#L1457.

However, when using this callback to specify a custom generator, the filename option of the generator seems to get ignored:

Encore
    .configureFontRule(rule => {
        rule.test = fontFileExtensionRegex;
        rule.generator = {
            filename: 'whatever/path/[name][ext]',
        };
    });

The issue seems to be this default filename option: https://github.com/symfony/webpack-encore/blob/main/lib/WebpackConfig.js#L78.

Using the same example, explicitly setting filename to global.undefined in the regular options seems to fix the issue:

Encore
    .configureFontRule(
        {
            filename: global.undefined,
        },
        rule => {
            rule.test = fontFileExtensionRegex;
            rule.generator = {
                filename: 'whatever/path/[name][ext]',
            };
        },
    );
weaverryan commented 1 year ago

I guess we could execute the user’s callback first, then add filename after if both it and generator are undefined. PR welcome :)

carsonbot commented 2 weeks ago

Thank you for this issue. There has not been a lot of activity here for a while. Has this been resolved?