73 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								const webpack = require('webpack');
							 | 
						||
| 
								 | 
							
								const path = require('path');
							 | 
						||
| 
								 | 
							
								const UglifyPlugin = require('uglifyjs-webpack-plugin');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const __DEV__ = process.env.NODE_ENV !== 'production';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = {
							 | 
						||
| 
								 | 
							
								  entry: './src/client/frame-runner.js',
							 | 
						||
| 
								 | 
							
								  devtool: __DEV__ ? 'inline-source-map' : 'source-map',
							 | 
						||
| 
								 | 
							
								  node: {
							 | 
						||
| 
								 | 
							
								    // Mock Node.js modules that Babel require()s but that we don't
							 | 
						||
| 
								 | 
							
								    // particularly care about.
							 | 
						||
| 
								 | 
							
								    fs: 'empty',
							 | 
						||
| 
								 | 
							
								    module: 'empty',
							 | 
						||
| 
								 | 
							
								    net: 'empty'
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  output: {
							 | 
						||
| 
								 | 
							
								    filename: __DEV__ ? 'frame-runner.js' : 'frame-runner-[hash].js',
							 | 
						||
| 
								 | 
							
								    path: path.join(__dirname, './static/js')
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  stats: {
							 | 
						||
| 
								 | 
							
								    // Examine all modules
							 | 
						||
| 
								 | 
							
								    maxModules: Infinity,
							 | 
						||
| 
								 | 
							
								    // Display bailout reasons
							 | 
						||
| 
								 | 
							
								    optimizationBailout: true
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  module: {
							 | 
						||
| 
								 | 
							
								    rules: [{
							 | 
						||
| 
								 | 
							
								      test: /\.jsx?$/,
							 | 
						||
| 
								 | 
							
								      include: [ path.join(__dirname, 'client/') ],
							 | 
						||
| 
								 | 
							
								      use: {
							 | 
						||
| 
								 | 
							
								        loader: 'babel-loader',
							 | 
						||
| 
								 | 
							
								        options: {
							 | 
						||
| 
								 | 
							
								          babelrc: false,
							 | 
						||
| 
								 | 
							
								          presets: [
							 | 
						||
| 
								 | 
							
								            [ 'es2015', { modules: false }],
							 | 
						||
| 
								 | 
							
								            [ 'stage-3' ]
							 | 
						||
| 
								 | 
							
								          ],
							 | 
						||
| 
								 | 
							
								          plugins: [
							 | 
						||
| 
								 | 
							
								            'transform-runtime',
							 | 
						||
| 
								 | 
							
								            'lodash'
							 | 
						||
| 
								 | 
							
								          ]
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }]
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  externals: {
							 | 
						||
| 
								 | 
							
								    rxjs: 'Rx'
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  plugins: [
							 | 
						||
| 
								 | 
							
								    new webpack.DefinePlugin({
							 | 
						||
| 
								 | 
							
								      'process.env': {
							 | 
						||
| 
								 | 
							
								        NODE_ENV: JSON.stringify(__DEV__ ? 'development' : 'production')
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								      __DEVTOOLS__: !__DEV__
							 | 
						||
| 
								 | 
							
								    }),
							 | 
						||
| 
								 | 
							
								    // Use browser version of visionmedia-debug
							 | 
						||
| 
								 | 
							
								    new webpack.NormalModuleReplacementPlugin(
							 | 
						||
| 
								 | 
							
								      /debug\/node/,
							 | 
						||
| 
								 | 
							
								      'debug/src/browser'
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								  ]
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports.plugins.push(
							 | 
						||
| 
								 | 
							
								  new UglifyPlugin({
							 | 
						||
| 
								 | 
							
								    test: /\.js($|\?)/i,
							 | 
						||
| 
								 | 
							
								    cache: true,
							 | 
						||
| 
								 | 
							
								    sourceMap: true
							 | 
						||
| 
								 | 
							
								  })
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 |