From 3011a6cdf40b5ebe7751d26716f728d64ca70488 Mon Sep 17 00:00:00 2001 From: Abenezer Abebe Date: Wed, 6 Feb 2019 21:16:02 +0100 Subject: [PATCH] ast: replace requires and inits for uglify with terser Given that uglify is initialised with options, then replace its require and usage with terser --- .../__snapshots__/uglifyJsPlugin.test.js.snap | 8 ++++---- packages/migrate/uglifyJsPlugin/uglifyJsPlugin.ts | 7 +++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap b/packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap index 61a2b52ec05..5559fd99aa5 100644 --- a/packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap +++ b/packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap @@ -10,13 +10,13 @@ exports[`uglifyJsPlugin transforms correctly using "uglifyJsPlugin-0" data 1`] = `; exports[`uglifyJsPlugin transforms correctly using "uglifyJsPlugin-1" data 1`] = ` -"const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +"const TerserPlugin = require('terser-webpack-plugin'); module.exports = { devtool: \\"source-map\\", optimization: { minimize: true, - minimizer: [new UglifyJsPlugin({ + minimizer: [new TerserPlugin({ sourceMap: true, compress: {} })] @@ -26,13 +26,13 @@ module.exports = { `; exports[`uglifyJsPlugin transforms correctly using "uglifyJsPlugin-2" data 1`] = ` -"const Uglify = require('uglifyjs-webpack-plugin'); +"const TerserPlugin = require('terser-webpack-plugin'); module.exports = { devtool: \\"source-map\\", optimization: { minimize: true, - minimizer: [new Uglify({ + minimizer: [new TerserPlugin({ sourceMap: true, compress: {} })] diff --git a/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.ts b/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.ts index 24a3f41738a..2882e00c662 100644 --- a/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.ts +++ b/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.ts @@ -67,14 +67,17 @@ export default function(j: IJSCodeshift, ast: INode): INode { * - add require for terser-webpack-plugin * - add to minimizer */ - if (pluginVariableAssignment && pluginVariableAssignment.includes("webpack")) { + if (pluginVariableAssignment) { + // remove require for uglify-js-plugin + searchForRequirePlugin.remove(); + // create require for terser-webpack-plugin const pathRequire: INode = getRequire( j, "TerserPlugin", "terser-webpack-plugin", ); - // append to source code. + // prepend to source code. ast .find(j.Program) .replaceWith((p: INode): INode =>