Отключить изменение функции веб-пакета для определенных файлов

Я использую веб-пакет для связывания моего углового приложения.

Один из связанных файлов включает в себя все модели, необходимые приложению, модели определяются с помощью функций конструктора.

Webpack через свой плагин UglifyJS искажает имена функций моего конструктора, что приводит к различным осложнениям.

Я хочу, чтобы веб-пакет не искажал имена функций только для этого конкретного актива.

Есть ли способ добиться этого?


person Nir B.    schedule 03.04.2018    source источник
comment
На какую версию веб-пакета вы ориентируетесь?   -  person Legends    schedule 03.04.2018
comment
v4, последняя стабильная   -  person Nir B.    schedule 04.04.2018
comment
Это работает для вас? Пингуйте меня, если у вас возникнут проблемы.   -  person Legends    schedule 05.04.2018


Ответы (1)


Более подробные параметры конфигурации см.

Вы можете попробовать добавить несколько экземпляров UglifyJSPlugin. Тот, который выдает имена функций, и тот, который генерирует искаженные.

Используйте exclude/include/test, чтобы сузить целевые файлы для каждого экземпляра!

optimization: {
        minimizer: [
            new UglifyJSPlugin({
                test: ...
                include: ...
                exclude: ...
                uglifyOptions: {
                    ecma: 5,
                    warnings: true,
                    mangle: false,
                    keep_fnames: true, <-----  keep it
                    output: {
                        beautify: true,
                        comments: true
                    }
                }
            }),
            new UglifyJSPlugin({
                test: ...
                include: ...
                exclude: ...
                uglifyOptions: {
                    ecma: 5,
                    warnings: true,
                    mangle: true,
                    keep_fnames: false,  <-- mangle them
                    output: {
                        beautify: false,
                        comments: false
                    }
                }
            })
        ]
    }
person Legends    schedule 04.04.2018