diff --git a/components/common/typescript.gni b/components/common/typescript.gni index cdf56772187..2a30394b256 100644 --- a/components/common/typescript.gni +++ b/components/common/typescript.gni @@ -15,6 +15,9 @@ template("transpile_web_ui") { # make sure rebuilds when common files change inputs = brave_common_typescript_includes + inputs += [ + "//brave/components/webpack/webpack.config.js", + ] if (defined(invoker.inputs)) { inputs += invoker.inputs } diff --git a/components/webpack/prod.config.js b/components/webpack/prod.config.js deleted file mode 100644 index ab77552c616..00000000000 --- a/components/webpack/prod.config.js +++ /dev/null @@ -1,84 +0,0 @@ -const path = require('path') -const webpack = require('webpack') -const UglifyJSPlugin = require('uglifyjs-webpack-plugin') - -module.exports = { - mode: 'production', - entry: { - brave_adblock: path.join(__dirname, '../brave_adblock_ui/brave_adblock'), - brave_new_tab: path.join(__dirname, '../brave_new_tab_ui/brave_new_tab'), - brave_rewards: path.join(__dirname, '../brave_rewards/resources/ui/brave_rewards'), - brave_sync: path.join(__dirname, '../brave_sync/ui/brave_sync'), - brave_welcome: path.join(__dirname, '../brave_welcome_ui/brave_welcome'), - brave_webtorrent: path.join(__dirname, '../brave_webtorrent/extension/brave_webtorrent'), - brave_webtorrent_background: path.join(__dirname, '../brave_webtorrent/extension/background'), - brave_rewards_panel: path.join(__dirname, '../brave_rewards/resources/extension/brave_rewards/brave_rewards_panel'), - brave_rewards_panel_background: path.join(__dirname, '../brave_rewards/resources/extension/brave_rewards/background'), - brave_donate: path.join(__dirname, '../brave_rewards/resources/donate/brave_donate'), - }, - output: { - path: process.env.TARGET_GEN_DIR, - filename: '[name].bundle.js', - chunkFilename: '[id].chunk.js' - }, - plugins: [ - new webpack.optimize.OccurrenceOrderPlugin(), - new webpack.IgnorePlugin(/[^/]+\/[\S]+.dev$/), - new UglifyJSPlugin({ - uglifyOptions: { - warnings: false, - output: { - comments: false - }, - compress: { - warnings: false - } - } - }) - ], - resolve: { - extensions: ['.js', '.tsx', '.ts', '.json'], - alias: { - 'bittorrent-tracker': path.resolve(__dirname, '../../node_modules/bittorrent-tracker'), - 'dgram': 'chrome-dgram', - 'dns': path.resolve(__dirname, '../common/dns.ts'), - 'net': 'chrome-net', - 'torrent-discovery': path.resolve(__dirname, '../../node_modules/torrent-discovery') - } - }, - module: { - rules: [ - { - test: /\.tsx?$/, - loader: 'awesome-typescript-loader' - }, - { - test: /\.js$/, - loader: 'babel-loader', - exclude: /node_modules/, - query: { - presets: ['react-optimize'] - } - }, - { - test: /\.less$/, - loader: 'style-loader!css-loader?-minimize!less-loader' - }, - { - test: /\.css$/, - loader: 'style-loader!css-loader?-minimize' - }, - // Loads font files for Font Awesome - { - test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, - loader: 'url-loader?limit=13000&minetype=application/font-woff' - }, - { - test: /\.(ttf|eot|ico|svg|png|jpg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, - loader: 'file-loader' - }] - }, - node: { - fs: 'empty' - } -} diff --git a/components/webpack/dev.config.js b/components/webpack/webpack.config.js similarity index 50% rename from components/webpack/dev.config.js rename to components/webpack/webpack.config.js index b179cb265c3..48115e862d3 100644 --- a/components/webpack/dev.config.js +++ b/components/webpack/webpack.config.js @@ -1,30 +1,12 @@ const path = require('path') -const webpack = require('webpack') -module.exports = { - mode: 'development', - devtool: '#inline-source-map', - entry: { - brave_adblock: path.join(__dirname, '../brave_adblock_ui/brave_adblock'), - brave_new_tab: path.join(__dirname, '../brave_new_tab_ui/brave_new_tab'), - brave_rewards: path.join(__dirname, '../brave_rewards/resources/ui/brave_rewards'), - brave_sync: path.join(__dirname, '../brave_sync/ui/brave_sync'), - brave_welcome: path.join(__dirname, '../brave_welcome_ui/brave_welcome'), - brave_webtorrent: path.join(__dirname, '../brave_webtorrent/extension/brave_webtorrent'), - brave_webtorrent_background: path.join(__dirname, '../brave_webtorrent/extension/background'), - brave_rewards_panel: path.join(__dirname, '../brave_rewards/resources/extension/brave_rewards/brave_rewards_panel'), - brave_rewards_panel_background: path.join(__dirname, '../brave_rewards/resources/extension/brave_rewards/background'), - brave_donate: path.join(__dirname, '../brave_rewards/resources/donate/brave_donate'), - }, +module.exports = (env, argv) => ({ + devtool: argv.mode === 'development' ? '#inline-source-map' : false, output: { path: process.env.TARGET_GEN_DIR, filename: '[name].bundle.js', chunkFilename: '[id].chunk.js' }, - plugins: [ - new webpack.optimize.OccurrenceOrderPlugin(), - new webpack.IgnorePlugin(/[^/]+\/[\S]+.dev$/) - ], resolve: { extensions: ['.js', '.tsx', '.ts', '.json'], alias: { @@ -63,11 +45,11 @@ module.exports = { loader: 'url-loader?limit=13000&minetype=application/font-woff' }, { - test: /\.(ttf|eot|svg|ico|png|jpg|jpeg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, + test: /\.(ttf|eot|ico|svg|png|jpg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'file-loader' }] }, node: { fs: 'empty' } -} +}) diff --git a/package.json b/package.json index 72d5d3b8ad0..52321ea20ce 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,7 @@ "lint": "tslint --project tsconfig.json 'components/**/*.{ts,tsx}'", "pep8": "pycodestyle -r script", "web-ui-gen-grd": "node components/webpack/gen-webpack-grd", - "web-ui": "webpack --config components/webpack/prod.config.js --progress --profile --colors", - "web-ui-dev": "webpack --config components/webpack/dev.config.js --progress --profile --colors", + "web-ui": "webpack --config components/webpack/webpack.config.js --progress --colors", "test-unit": "jest -t", "test-security": "npm audit" }, diff --git a/script/transpile-web-ui.py b/script/transpile-web-ui.py index 29c21e1ac2d..c4e7ce57f41 100755 --- a/script/transpile-web-ui.py +++ b/script/transpile-web-ui.py @@ -46,10 +46,12 @@ def transpile_web_uis(production, target_gen_dir, entry_points, env=None): if env is None: env = os.environ.copy() + args = [NPM, 'run', 'web-ui', '--'] + if production: - args = [NPM, 'run', 'web-ui', '--'] + args.append("--mode=production") else: - args = [NPM, 'run', 'web-ui-dev', '--'] + args.append("--mode=development") # entrypoints for entry in entry_points: