]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/config/webpack.prod.js
Bundle webtorrent with webpack. Closes https://github.com/Chocobozzz/PeerTube/issues/50
[github/Chocobozzz/PeerTube.git] / client / config / webpack.prod.js
index 6d65fcb3739ff3305b9f9358db534dbe7b3f9c86..c27a4f4b03e46599a4526a49d4659d3d8ff0cf93 100644 (file)
@@ -14,7 +14,7 @@ const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin')
 const NormalModuleReplacementPlugin = require('webpack/lib/NormalModuleReplacementPlugin')
 const OptimizeJsPlugin = require('optimize-js-plugin')
 const UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin')
-const WebpackMd5Hash = require('webpack-md5-hash')
+const HashedModuleIdsPlugin = require('webpack/lib/HashedModuleIdsPlugin')
 
 /**
  * Webpack Constants
@@ -26,7 +26,8 @@ const METADATA = webpackMerge(commonConfig({env: ENV}).metadata, {
   host: HOST,
   port: PORT,
   ENV: ENV,
-  HMR: false
+  HMR: false,
+  API_URL: ''
 })
 
 module.exports = function (env) {
@@ -67,7 +68,7 @@ module.exports = function (env) {
       *
       * See: http://webpack.github.io/docs/configuration.html#output-sourcemapfilename
       */
-      sourceMapFilename: '[name].[chunkhash].bundle.map',
+      sourceMapFilename: '[file].map',
 
       /**
       * The filename of non-entry chunks as relative path
@@ -75,15 +76,11 @@ module.exports = function (env) {
       *
       * See: http://webpack.github.io/docs/configuration.html#output-chunkfilename
       */
-      chunkFilename: '[id].[chunkhash].chunk.js',
+      chunkFilename: '[name].[chunkhash].chunk.js',
 
       publicPath: '/client/'
     },
 
-    externals: {
-      webtorrent: 'WebTorrent'
-    },
-
     /**
      * Add additional plugins to the compiler.
      *
@@ -91,14 +88,6 @@ module.exports = function (env) {
      */
     plugins: [
 
-      /**
-       * Plugin: WebpackMd5Hash
-       * Description: Plugin to replace a standard webpack chunkhash with md5.
-       *
-       * See: https://www.npmjs.com/package/webpack-md5-hash
-       */
-      new WebpackMd5Hash(),
-
       /**
        * Webpack plugin to optimize a JavaScript file for faster initial load
        * by wrapping eagerly-invoked functions.
@@ -133,6 +122,7 @@ module.exports = function (env) {
       new DefinePlugin({
         'ENV': JSON.stringify(METADATA.ENV),
         'HMR': METADATA.HMR,
+        'API_URL': JSON.stringify(METADATA.API_URL),
         'process.env': {
           'ENV': JSON.stringify(METADATA.ENV),
           'NODE_ENV': JSON.stringify(METADATA.ENV),
@@ -194,35 +184,7 @@ module.exports = function (env) {
         helpers.root('config/empty.js')
       ),
 
-      // AoT
-      // new NormalModuleReplacementPlugin(
-      //   /@angular(\\|\/)upgrade/,
-      //   helpers.root('config/empty.js')
-      // ),
-      // new NormalModuleReplacementPlugin(
-      //   /@angular(\\|\/)compiler/,
-      //   helpers.root('config/empty.js')
-      // ),
-      // new NormalModuleReplacementPlugin(
-      //   /@angular(\\|\/)platform-browser-dynamic/,
-      //   helpers.root('config/empty.js')
-      // ),
-      // new NormalModuleReplacementPlugin(
-      //   /dom(\\|\/)debug(\\|\/)ng_probe/,
-      //   helpers.root('config/empty.js')
-      // ),
-      // new NormalModuleReplacementPlugin(
-      //   /dom(\\|\/)debug(\\|\/)by/,
-      //   helpers.root('config/empty.js')
-      // ),
-      // new NormalModuleReplacementPlugin(
-      //   /src(\\|\/)debug(\\|\/)debug_node/,
-      //   helpers.root('config/empty.js')
-      // ),
-      // new NormalModuleReplacementPlugin(
-      //   /src(\\|\/)debug(\\|\/)debug_renderer/,
-      //   helpers.root('config/empty.js')
-      // ),
+      new HashedModuleIdsPlugin(),
 
       /**
       * Plugin: IgnorePlugin
@@ -252,6 +214,7 @@ module.exports = function (env) {
       * See: https://gist.github.com/sokra/27b24881210b56bbaff7
       */
       new LoaderOptionsPlugin({
+        minimize: true,
         debug: false,
         options: {
 
@@ -305,6 +268,7 @@ module.exports = function (env) {
     node: {
       global: true,
       crypto: 'empty',
+      fs: 'empty',
       process: false,
       module: false,
       clearImmediate: false,