From ef23fecaa11e611c8a7c1b74373697ee42710793 Mon Sep 17 00:00:00 2001 From: Abenezer Abebe Date: Wed, 9 Jan 2019 11:44:45 +0100 Subject: [PATCH] fix: replace lookups for TerserPlugin in webpack.optimise replace lookups for TerserPlugin in webpack.optimise with requiring terser-webpack-plugin --- package-lock.json | 6 ++ packages/migrate/__testfixtures__/failing.js | 3 +- .../__snapshots__/migrate.test.ts.snap | 62 +++++++++++-------- .../loaderOptionsPlugin.test.ts.snap | 5 +- .../loaderOptionsPlugin-1.input.js | 3 +- .../loaderOptionsPlugin.ts | 2 +- .../__testfixtures__/terserPlugin-3.input.js | 3 +- packages/utils/__tests__/ast-utils.test.ts | 8 +-- 8 files changed, 57 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 741b984d2a2..d9ba3031a3f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12524,8 +12524,14 @@ "dev": true }, "os-locale": { +<<<<<<< HEAD "version": "3.1.0", "bundled": true, +======= + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", +>>>>>>> 0b7b0f2... fix: replace lookups for TerserPlugin in webpack.optimise "dev": true, "requires": { "execa": "^1.0.0", diff --git a/packages/migrate/__testfixtures__/failing.js b/packages/migrate/__testfixtures__/failing.js index 7036035d41c..ff73dc9c53f 100644 --- a/packages/migrate/__testfixtures__/failing.js +++ b/packages/migrate/__testfixtures__/failing.js @@ -1,6 +1,7 @@ const webpack = require('webpack'); const nodeEnvironment = process.env.NODE_ENV; const _ = require("lodash"); +const TerserPlugin = require('terser-webpack-plugin'); const config = { entry: { @@ -43,7 +44,7 @@ const config = { switch (nodeEnvironment) { case "production": - config.plugins.push(new webpack.optimize.TerserPlugin()); + config.plugins.push(new TerserPlugin()); case "preproduction": config.output.path = __dirname + "/dist"; config.plugins.push(new webpack.optimize.DedupePlugin()); diff --git a/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap b/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap index 13e0f6c0c3c..3a2f7ab6983 100644 --- a/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap +++ b/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap @@ -22,7 +22,7 @@ module.exports = { modules: ['node_modules'] }, plugins: [ - new webpack.optimize.TerserPlugin(), + new TerserPlugin(), new webpack.optimize.OccurrenceOrderPlugin() ], debug: true @@ -50,7 +50,7 @@ module.exports = { modules: ['node_modules'] }, plugins: [ - new webpack.optimize.TerserPlugin(), + new TerserPlugin(), new webpack.optimize.OccurrenceOrderPlugin() ], debug: true @@ -61,15 +61,18 @@ module.exports = { exports[`transform should respect recast options 1`] = ` " module.exports = { - devtool: 'eval', - entry: [ + devtool: 'eval', + + entry: [ './src/index' ], - output: { + + output: { path: path.join(__dirname, 'dist'), filename: 'index.js' }, - module: { + + module: { rules: [{ test: /.js$/, use: [{ @@ -78,15 +81,18 @@ module.exports = { include: path.join(__dirname, 'src') }] }, - resolve: { + + resolve: { modules: ['node_modules', path.resolve('/src')], }, - plugins: [new webpack.LoaderOptionsPlugin({ - debug: true, - })], - optimization: { - minimize: true, - } + + plugins: [ + new TerserPlugin(), + new webpack.LoaderOptionsPlugin({ + debug: true, + minimize: true, + }) + ], }; " `; @@ -116,7 +122,7 @@ module.exports = { modules: ['node_modules'] }, plugins: [ - new webpack.optimize.TerserPlugin(), + new TerserPlugin(), new webpack.optimize.OccurrenceOrderPlugin() ], debug: true @@ -127,15 +133,18 @@ module.exports = { exports[`transform should transform using all transformations 1`] = ` " module.exports = { - devtool: 'eval', - entry: [ + devtool: 'eval', + + entry: [ './src/index' ], - output: { + + output: { path: path.join(__dirname, 'dist'), filename: 'index.js' }, - module: { + + module: { rules: [{ test: /.js$/, use: [{ @@ -144,15 +153,18 @@ module.exports = { include: path.join(__dirname, 'src') }] }, - resolve: { + + resolve: { modules: ['node_modules', path.resolve('/src')] }, - plugins: [new webpack.LoaderOptionsPlugin({ - debug: true - })], - optimization: { - minimize: true - } + + plugins: [ + new TerserPlugin(), + new webpack.LoaderOptionsPlugin({ + debug: true, + minimize: true + }) + ] }; " `; diff --git a/packages/migrate/loaderOptionsPlugin/__tests__/__snapshots__/loaderOptionsPlugin.test.ts.snap b/packages/migrate/loaderOptionsPlugin/__tests__/__snapshots__/loaderOptionsPlugin.test.ts.snap index 5ab63e3c97c..53b8bc5af31 100644 --- a/packages/migrate/loaderOptionsPlugin/__tests__/__snapshots__/loaderOptionsPlugin.test.ts.snap +++ b/packages/migrate/loaderOptionsPlugin/__tests__/__snapshots__/loaderOptionsPlugin.test.ts.snap @@ -11,9 +11,10 @@ module.exports = { `; exports[`loaderOptionsPlugin transforms correctly using "loaderOptionsPlugin-1" data 1`] = ` -"module.exports = { +"const TerserPlugin = require(\\"terser-webpack-plugin\\"); +module.exports = { plugins: [ - new webpack.optimize.TerserPlugin(), + new TerserPlugin(), new webpack.LoaderOptionsPlugin({ foo: 'bar', debug: true, diff --git a/packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-1.input.js b/packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-1.input.js index 7282ec66005..9540ce30441 100644 --- a/packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-1.input.js +++ b/packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-1.input.js @@ -1,7 +1,8 @@ +const TerserPlugin = require("terser-webpack-plugin"); module.exports = { debug: true, plugins: [ - new webpack.optimize.TerserPlugin(), + new TerserPlugin(), new webpack.LoaderOptionsPlugin({ foo: 'bar' }) diff --git a/packages/migrate/loaderOptionsPlugin/loaderOptionsPlugin.ts b/packages/migrate/loaderOptionsPlugin/loaderOptionsPlugin.ts index ed30c419fca..45b1c81cc17 100644 --- a/packages/migrate/loaderOptionsPlugin/loaderOptionsPlugin.ts +++ b/packages/migrate/loaderOptionsPlugin/loaderOptionsPlugin.ts @@ -38,7 +38,7 @@ export default function(j: IJSCodeshift, ast: INode): INode { } // If there is TerserPlugin, set minimize: true - if (findPluginsByName(j, ast, ["webpack.optimize.TerserPlugin"]).size()) { + if (findPluginsByName(j, ast, ["TerserPlugin"]).size()) { loaderOptions.minimize = true; } diff --git a/packages/migrate/terserPlugin/__testfixtures__/terserPlugin-3.input.js b/packages/migrate/terserPlugin/__testfixtures__/terserPlugin-3.input.js index c9d4d9be1a4..045f23d3f8b 100644 --- a/packages/migrate/terserPlugin/__testfixtures__/terserPlugin-3.input.js +++ b/packages/migrate/terserPlugin/__testfixtures__/terserPlugin-3.input.js @@ -1,3 +1,4 @@ +const TerserPlugin = require("terser-webpack-plugin"); module.exports = { devtool: "eval", entry: ["./src/index"], @@ -18,6 +19,6 @@ module.exports = { root: path.resolve("/src"), modules: ["node_modules"] }, - plugins: [new webpack.optimize.TerserPlugin(), new webpack.optimize.OccurrenceOrderPlugin()], + plugins: [new TerserPlugin(), new webpack.optimize.OccurrenceOrderPlugin()], debug: true }; diff --git a/packages/utils/__tests__/ast-utils.test.ts b/packages/utils/__tests__/ast-utils.test.ts index 8876b1893e5..1642d1954dc 100644 --- a/packages/utils/__tests__/ast-utils.test.ts +++ b/packages/utils/__tests__/ast-utils.test.ts @@ -35,9 +35,9 @@ describe("utils", () => { describe("findPluginsByName", () => { it("should find plugins in AST", () => { const ast = j(` -{ foo: new webpack.optimize.TerserPlugin() } +{ foo: new TerserPlugin() } `); - const res = utils.findPluginsByName(j, ast, ["webpack.optimize.TerserPlugin"]); + const res = utils.findPluginsByName(j, ast, ["TerserPlugin"]); expect(res.size()).toEqual(1); }); @@ -54,9 +54,9 @@ describe("utils", () => { it("should not find false positives", () => { const ast = j(` -{ foo: new TerserPlugin() } +{ foo: new webpack.optimize.TerserPlugin() } `); - const res = utils.findPluginsByName(j, ast, ["webpack.optimize.TerserPlugin"]); + const res = utils.findPluginsByName(j, ast, ["TerserPlugin"]); expect(res.size()).toEqual(0); }); });