diff --git a/packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap b/packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap index b53445ca5a1..61a2b52ec05 100644 --- a/packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap +++ b/packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap @@ -78,7 +78,7 @@ exports[`uglifyJsPlugin transforms correctly using "uglifyJsPlugin-3" data 1`] = `; exports[`uglifyJsPlugin transforms correctly using "uglifyJsPlugin-4" data 1`] = ` -"const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +"const TerserPlugin = require('terser-webpack-plugin'); module.exports = { devtool: 'eval', @@ -110,7 +110,7 @@ module.exports = { optimization: { minimize: true, - minimizer: [new UglifyJsPlugin({ + minimizer: [new TerserPlugin({ sourceMap: true })] } diff --git a/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.ts b/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.ts index dbf5f8152fa..7d1f96466c8 100644 --- a/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.ts +++ b/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.ts @@ -15,7 +15,8 @@ import { IJSCodeshift, INode } from "../types/NodePath"; * and adds `optimization.minimize: true` to config * * If any configuration is passed to UglifyWebpackPlugin - * plugin instantiation is moved to `optimization.minimizer`. + * Replaces UglifyWebpackPlugin with TerserPlugin and + * and moves plugin instantiation to `optimization.minimizer`. * * @param {Object} j - jscodeshift top-level import * @param {Node} ast - jscodeshift ast to transform @@ -63,15 +64,15 @@ export default function(j: IJSCodeshift, ast: INode): INode { * If user is using UglifyJsPlugin directly from webpack * transformation must: * - remove it - * - add require for uglify-webpack-plugin + * - add require for terser-webpack-plugin * - add to minimizer */ if (pluginVariableAssignment && pluginVariableAssignment.includes("webpack")) { - // create require for uglify-webpack-plugin + // create require for terser-webpack-plugin const pathRequire: INode = getRequire( j, - "UglifyJsPlugin", - "uglifyjs-webpack-plugin", + "TerserPlugin", + "terser-webpack-plugin", ); // append to source code. ast @@ -84,7 +85,7 @@ export default function(j: IJSCodeshift, ast: INode): INode { "init", j.identifier("minimizer"), j.arrayExpression([ - j.newExpression(j.identifier("UglifyJsPlugin"), [pluginOptions[0]]), + j.newExpression(j.identifier("TerserPlugin"), [pluginOptions[0]]), ]), ); } else {