gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-wallet-webex] branch master updated: Optimize produc


From: gnunet
Subject: [GNUnet-SVN] [taler-wallet-webex] branch master updated: Optimize production builds.
Date: Mon, 24 Apr 2017 23:20:53 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-webex.

The following commit(s) were added to refs/heads/master by this push:
     new c26ee93  Optimize production builds.
c26ee93 is described below

commit c26ee93d53a0b5fe6f20b03c1dbcee54f217cd2b
Author: Florian Dold <address@hidden>
AuthorDate: Mon Apr 24 23:18:15 2017 +0200

    Optimize production builds.
    
    Uses UglifyJS, and thus TypeScript needs to compile down to ES5, since
    UglifyJS does not yet fully support ES6.  Once all ES6 bugs in UglifyJS,
    we should compile to ES6 again.
---
 gulpfile.js       |   4 +-
 package.json      |  25 ++++----
 tsconfig.json     |   2 +-
 webpack.config.js | 187 +++++++++++++++++++++---------------------------------
 yarn.lock         |  19 +++++-
 5 files changed, 103 insertions(+), 134 deletions(-)

diff --git a/gulpfile.js b/gulpfile.js
index 9841b5f..e189733 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -101,7 +101,7 @@ const paths = {
 
 
 const tsBaseArgs = {
-  target: "es6",
+  target: "es5",
   jsx: "react",
   reactNamespace: "React",
   experimentalDecorators: true,
@@ -165,7 +165,7 @@ gulp.task("dist-prod", ["clean", "compile-prod"], function 
() {
 });
 
 gulp.task("compile-prod", function (callback) {
-  let config = require("./webpack.config.js");
+  let config = require("./webpack.config.js")({prod: true});
   webpack(config, function(err, stats) {
     if(err) {
       throw new gutil.PluginError("webpack", err);
diff --git a/package.json b/package.json
index d750c35..f667583 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,9 @@
   "author": "",
   "license": "GPL-3.0",
   "devDependencies": {
+    "@types/react": "^15.0.22",
+    "@types/react-dom": "^15.5.0",
+    "async": "^2.1.2",
     "better-assert": "^1.0.2",
     "connect": "^3.5.0",
     "del": "^2.2.0",
@@ -29,12 +32,16 @@
     "gulp-tar": "^1.8.0",
     "gulp-typescript": "^3.0.2",
     "gulp-zip": "^3.1.0",
+    "html-webpack-plugin": "^2.28.0",
     "istanbul": "^0.4.5",
     "istanbul-lib-instrument": "^1.0.0-alpha.6",
+    "jed": "^1.1.1",
     "map-stream": "0.0.6",
     "minimist": "^1.2.0",
     "mocha": "^2.4.5",
     "po2json": "git+https://github.com/mikeedwards/po2json";,
+    "react": "^15.5.4",
+    "react-dom": "^15.5.4",
     "selenium-webdriver": "^3.0.1",
     "serve-static": "^1.11.1",
     "systemjs": "^0.19.14",
@@ -43,19 +50,11 @@
     "ts-loader": "^2.0.3",
     "typescript": "next",
     "typhonjs-istanbul-instrument-jspm": "^0.1.0",
-    "uglify-js": "git://github.com/mishoo/UglifyJS2#harmony",
-    "vinyl": "^2.0.0",
-    "vinyl-fs": "^2.4.3"
-  },
-  "dependencies": {
-    "@types/react": "^15.0.22",
-    "@types/react-dom": "^15.5.0",
-    "async": "^2.1.2",
-    "html-webpack-plugin": "^2.28.0",
-    "jed": "^1.1.1",
-    "react": "^15.5.4",
-    "react-dom": "^15.5.4",
     "urijs": "^1.18.10",
-    "webpack": "^2.4.1"
+    "vinyl": "^2.0.0",
+    "vinyl-fs": "^2.4.3",
+    "webpack": "^2.4.1",
+    "webpack-merge": "^4.1.0",
+    "uglify-js": "^2.8.22"
   }
 }
diff --git a/tsconfig.json b/tsconfig.json
index da19dba..93c7fb1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,6 +1,6 @@
 {
   "compilerOptions": {
-    "target": "es6",
+    "target": "es5",
     "jsx": "react",
     "reactNamespace": "React",
     "experimentalDecorators": true,
diff --git a/webpack.config.js b/webpack.config.js
index 4a49486..e191553 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -1,124 +1,79 @@
 const path = require('path');
 const webpack = require('webpack');
+const merge = require('webpack-merge');
 
-const configWebWorker = {
-  entry: {"cryptoWorker": "./src/cryptoWorker.ts"},
-  target: "webworker",
-  output: {
-    filename: '[name]-bundle.js',
-    chunkFilename: "[id].chunk.js",
-    path: path.resolve(__dirname, "dist")
-  },
-  module: {
-    noParse: /taler-emscripten-lib/,
-    rules: [
-      {
-        test: /\.tsx?$/,
-        loader: 'ts-loader',
-        exclude: /node_modules/,
-        exclude: /taler-emscripten-lib/,
-      }
-    ]
-  },
-  externals: {
-    // A big hack to load taler-emscripten-lib from the environment,
-    // because we exclude it from the bundle.
-    "./emscripten/taler-emscripten-lib": "(self.TalerEmscriptenLib = {}, 
importScripts('/src/emscripten/taler-emscripten-lib.js'), TalerEmscriptenLib)",
-  },
-  resolve: {
-    modules: [path.resolve(__dirname, "./"), "node_modules"],
-    extensions: [".tsx", ".ts", ".js"]
-  },
-  devtool: "source-map",
-}
-
-const configContentScript = {
-  entry: {"contentScript": "./src/content_scripts/notify.ts"},
-  output: {
-    filename: '[name]-bundle.js',
-    chunkFilename: "[id].chunk.js",
-    path: path.resolve(__dirname, "dist")
-  },
-  module: {
-    noParse: /taler-emscripten-lib/,
-    rules: [
-      {
-        test: /\.tsx?$/,
-        loader: 'ts-loader',
-        exclude: /node_modules/,
-      }
-    ]
-  },
-  resolve: {
-    modules: [path.resolve(__dirname, "./"), "node_modules"],
-    extensions: [".tsx", ".ts", ".js"]
-  },
-  devtool: "source-map",
-}
 
-const configBackground = {
-  entry: {"background": "./src/background/background.ts"},
-  output: {
-    filename: '[name]-bundle.js',
-    chunkFilename: "[id].chunk.js",
-    path: path.resolve(__dirname, "dist")
-  },
-  module: {
-    rules: [
-      {
-        test: /\.tsx?$/,
-        loader: 'ts-loader',
-        exclude: /node_modules/,
-      }
-    ]
-  },
-  externals: /taler-emscripten-lib/,
-  resolve: {
-    modules: [path.resolve(__dirname, "./"), "node_modules"],
-    extensions: [".tsx", ".ts", ".js"]
-  },
-  devtool: "source-map",
-}
+module.exports = function (env) {
+  const base = {
+    output: {
+      filename: '[name]-bundle.js',
+      chunkFilename: "[id].chunk.js",
+      path: path.resolve(__dirname, "dist")
+    },
+    module: {
+      noParse: /taler-emscripten-lib/,
+      rules: [
+        {
+          test: /\.tsx?$/,
+          loader: 'ts-loader',
+          exclude: /node_modules/,
+          exclude: /taler-emscripten-lib/,
+        }
+      ]
+    },
+    resolve: {
+      modules: [path.resolve(__dirname, "./"), "node_modules"],
+      extensions: [".tsx", ".ts", ".js"]
+    },
+    plugins: [],
+    devtool: "source-map",
+  }
+  if (env.prod) {
+    base.plugins.push(new webpack.optimize.UglifyJsPlugin());
+    base.plugins.push(new webpack.LoaderOptionsPlugin({minimize: true}));
+  }
+  const configWebWorker = {
+    entry: {"cryptoWorker": "./src/cryptoWorker.ts"},
+    target: "webworker",
+    externals: {
+      // A big hack to load taler-emscripten-lib from the environment,
+      // because we exclude it from the bundle.
+      "./emscripten/taler-emscripten-lib": "(self.TalerEmscriptenLib = {}, 
importScripts('/src/emscripten/taler-emscripten-lib.js'), TalerEmscriptenLib)",
+    },
+  };
 
+  const configBackground = {
+    entry: {"background": "./src/background/background.ts"},
+  };
 
-const configExtensionPages = {
-  entry: {
-    "add-auditor": "./src/pages/add-auditor.tsx",
-    "auditors": "./src/pages/auditors.tsx",
-    "confirm-contract": "./src/pages/confirm-contract.tsx",
-    "confirm-create-reserve": "./src/pages/confirm-create-reserve.tsx",
-    "error": "./src/pages/error.tsx",
-    "logs": "./src/pages/logs.tsx",
-    "popup": "./src/pages/popup.tsx",
-    "show-db": "./src/pages/show-db.ts",
-    "tree": "./src/pages/tree.tsx",
-  },
-  output: {
-    filename: '[name]-bundle.js',
-    chunkFilename: "[id].chunk.js",
-    path: path.resolve(__dirname, "dist")
-  },
-  module: {
-    rules: [
-      {
-        test: /\.tsx?$/,
-        loader: 'ts-loader',
-        exclude: /node_modules/,
-      }
-    ]
-  },
-  resolve: {
-    modules: [path.resolve(__dirname, "./"), "node_modules"],
-    extensions: [".tsx", ".ts", ".js"]
-  },
-  plugins: [
-    new webpack.optimize.CommonsChunkPlugin({
-      name: "page-common",
-      minChunks: 2,
-    }),
-  ],
-  devtool: "source-map",
-}
+  const configContentScript = {
+    entry: {"contentScript": "./src/content_scripts/notify.ts"},
+  };
 
+  const configExtensionPages = {
+    entry: {
+      "add-auditor": "./src/pages/add-auditor.tsx",
+      "auditors": "./src/pages/auditors.tsx",
+      "confirm-contract": "./src/pages/confirm-contract.tsx",
+      "confirm-create-reserve": "./src/pages/confirm-create-reserve.tsx",
+      "error": "./src/pages/error.tsx",
+      "logs": "./src/pages/logs.tsx",
+      "popup": "./src/pages/popup.tsx",
+      "show-db": "./src/pages/show-db.ts",
+      "tree": "./src/pages/tree.tsx",
+    },
+    plugins: [
+      new webpack.optimize.CommonsChunkPlugin({
+        name: "page-common",
+        minChunks: 2,
+      }),
+    ],
+  };
 
-module.exports = [configBackground, configWebWorker, configContentScript, 
configExtensionPages];
+  return [
+    merge(base, configBackground),
+    merge(base, configWebWorker),
+    merge(base, configExtensionPages),
+    merge(base, configContentScript)
+  ];
+}
diff --git a/yarn.lock b/yarn.lock
index ec86a35..b334da6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2371,7 +2371,7 @@ address@hidden:
   dependencies:
     lodash.keys "~2.4.1"
 
address@hidden, address@hidden, address@hidden, address@hidden, address@hidden:
address@hidden, address@hidden, address@hidden, address@hidden, address@hidden, 
address@hidden:
   version "4.17.4"
   resolved 
"https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae";
 
@@ -3673,7 +3673,7 @@ address@hidden:
   version "0.7.12"
   resolved 
"https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb";
 
address@hidden, address@hidden, 
"address@hidden://github.com/mishoo/UglifyJS2#harmony", address@hidden:
address@hidden, address@hidden, address@hidden:
   version "2.8.22"
   resolved 
"git://github.com/mishoo/UglifyJS2#278577f3cb75e72320564805ee91be63e5f9c806"
   dependencies:
@@ -3682,6 +3682,15 @@ address@hidden, address@hidden, 
"address@hidden://github.com/mishoo/UglifyJS2#h
   optionalDependencies:
     uglify-to-browserify "~1.0.0"
 
address@hidden:
+  version "2.8.22"
+  resolved 
"https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0";
+  dependencies:
+    source-map "~0.5.1"
+    yargs "~3.10.0"
+  optionalDependencies:
+    uglify-to-browserify "~1.0.0"
+
 address@hidden:
   version "1.0.2"
   resolved 
"https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7";
@@ -3875,6 +3884,12 @@ address@hidden:
     chokidar "^1.4.3"
     graceful-fs "^4.1.2"
 
address@hidden:
+  version "4.1.0"
+  resolved 
"https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.0.tgz#6ad72223b3e0b837e531e4597c199f909361511e";
+  dependencies:
+    lodash "^4.17.4"
+
 address@hidden:
   version "0.2.3"
   resolved 
"https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb";

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]