From 49423ebc3e5d323819f47bb5e7c86eebdeb8916b Mon Sep 17 00:00:00 2001 From: 1ambda <1amb4a@gmail.com> Date: Mon, 2 Jan 2017 15:26:26 +0900 Subject: [PATCH] [ZEPPELIN-1850] Remove strip-loader (webpack) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### What is this PR for? Removed [strip-loader](https://issues.apache.org/jira/browse/ZEPPELIN-1850) which was added to remove `console.log` in production. But we can achieve the same result by using uglify option. I missed it in https://github.com/apache/zeppelin/pull/1805 - `strip-loader` has a bug as you can see in below (screenshot section) - Deleting it help us to keep the package list simple - Also using the same configuration for uglify both in webpack and grunt will ensure that vendor package have the consistent behavior when they are managed by webpack Also, this should be merged before https://github.com/apache/zeppelin/pull/1812 since we need to modify `yarn.lock` in #1812 ### What type of PR is it? [Bug Fix | Improvement] ### Todos Done at once ### What is the Jira issue? [ZEPPELIN-1850](https://issues.apache.org/jira/browse/ZEPPELIN-1850) ### How should this be tested? 1. Add this code to any js file in master branch and execute `npm run build` to lint. You will get an error ``` console.log('editor isn\'t loaded yet, returning..'); ``` 2. Test the same command and code within this branch. It will work. ### Screenshots (if appropriate) ``` ERROR in ./src/app/notebook/paragraph/paragraph.controller.js Module build failed: SyntaxError: Unexpected token, expected , (197:8) 195 | } 196 | } > 197 | }); | ^ 198 | } else { 199 | BootstrapDialog.confirm({ 200 | closable: true, ./src/index.js 53:0-59 Child html-webpack-plugin for "index.html": + 1 hidden modules Running "useminPrepare:html" (useminPrepare) task Configuration changed for concat, uglify, cssmin Running "concurrent:dist" (concurrent) task Running "svgmin:dist" (svgmin) task Total saved: 0 B Done, without errors. Execution Time (2016-12-30 06:21:32 UTC) loading tasks 121ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 70% svgmin:dist 51ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 30% Total 172ms Running "copy:styles" (copy) task Copied 17 files Done, without errors. Execution Time (2016-12-30 06:21:32 UTC) loading tasks 127ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 77% copy:styles 38ms ▇▇▇▇▇▇▇▇▇▇▇ 23% Total 165ms Running "postcss:dist" (postcss) task >> 17 processed stylesheets created. >> No "concat" targets found. Warning: Task "concat" failed. Use --force to continue. Aborted due to warnings. Execution Time (2016-12-30 06:21:30 UTC) loading tasks 117ms ▇▇▇▇ 6% useminPrepare:html 22ms ▇ 1% concurrent:dist 1.5s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 80% postcss:dist 252ms ▇▇▇▇▇▇▇▇▇ 13% Total 1.9s npm ERR! Darwin 15.6.0 npm ERR! argv "/Users/lambda/.nvm/versions/node/v6.9.1/bin/node" "/Users/lambda/.nvm/versions/node/v6.9.1/bin/npm" "run" "build" ``` ### Questions: * Does the licenses files need update? - NO * Is there breaking changes for older versions? - NO * Does this needs documentation? - NO Author: 1ambda <1amb4a@gmail.com> Closes #1823 from 1ambda/ZEPPELIN-1850/remove-strip-loader-in-webpack and squashes the following commits: 137bcdd [1ambda] review: Fix invalid uglify plugin opt 3d3a581 [1ambda] fix: Remove strip-loader to avoid single quote error --- zeppelin-web/package.json | 1 - zeppelin-web/webpack.config.js | 27 ++++++++++++++++++--------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/zeppelin-web/package.json b/zeppelin-web/package.json index a519ab88a3e..522426629cf 100644 --- a/zeppelin-web/package.json +++ b/zeppelin-web/package.json @@ -66,7 +66,6 @@ "npm-run-all": "^3.1.2", "postcss-loader": "^1.2.1", "raw-loader": "^0.5.1", - "strip-loader": "^0.1.2", "style-loader": "^0.13.1", "time-grunt": "^0.3.1", "webpack": "^1.14.0", diff --git a/zeppelin-web/webpack.config.js b/zeppelin-web/webpack.config.js index c18f0fccd4e..e1689404a2d 100644 --- a/zeppelin-web/webpack.config.js +++ b/zeppelin-web/webpack.config.js @@ -130,11 +130,6 @@ module.exports = function makeWebpackConfig () { * This handles most of the magic responsible for converting modules */ - var jsLoaders = ['ng-annotate', 'babel-loader']; - if (isProd) { - jsLoaders.push('strip-loader?strip[]=console.log'); - } - // Initialize module config.module = { preLoaders: [], @@ -144,7 +139,7 @@ module.exports = function makeWebpackConfig () { // Transpile .js files using babel-loader // Compiles ES6 and ES7 into ES5 code test: /\.js$/, - loaders: jsLoaders, + loaders: ['ng-annotate', 'babel-loader'], exclude: /(node_modules|bower_components)/, }, { // CSS LOADER @@ -227,12 +222,26 @@ module.exports = function makeWebpackConfig () { // Reference: http://webpack.github.io/docs/list-of-plugins.html#uglifyjsplugin // Minify all javascript, switch loaders to minimizing mode - new webpack.optimize.UglifyJsPlugin(), + new webpack.optimize.UglifyJsPlugin({ + mangle: { screw_ie8: true }, + preserveComments: 'some', + compress: { + screw_ie8: true, + warnings: false, + sequences: true, + dead_code: true, + conditionals: true, + booleans: true, + unused: true, + if_return: true, + join_vars: true, + drop_console: true, + } + }), // Copy assets from the public folder // Reference: https://github.com/kevlened/copy-webpack-plugin - new CopyWebpackPlugin([ - ]) + new CopyWebpackPlugin([]) ) } else { config.plugins.push(new InsertLiveReloadPlugin())