×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Javascript
Posted by: Isaac Dettman
Added: Oct 31, 2016 10:35 PM
Views: 3
Tags: no tags
V2
  1. 'use strict';
  2.  
  3. const
  4.                 webpack = require('webpack'),
  5.                 uglify = require("uglifyjs"),
  6.                 path = require('path'),
  7.                 MemoryFS = require('memory-fs'),
  8.  
  9.                 BASE_PATHS = {
  10.                         RESOURCES: 'src/main/webapp/resources/',
  11.                         CONTROLLERS: 'src/main/webapp/resources/js/controllers/',
  12.                 },
  13.  
  14.                 WEBPACK_CONFIGURATION = {
  15.                         name: 'eonline-mobile',
  16.                         entry: {
  17.                                 apps: path.join(__dirname, BASE_PATHS.CONTROLLERS + 'more/apps.js'),
  18.                                 gallery: path.join(__dirname, BASE_PATHS.CONTROLLERS + 'photos/gallery.js')
  19.                         },
  20.                         output: {
  21.  
  22.                                 pathinfo: false,
  23.                                 libraryTarget: 'umd',
  24.  
  25.                                 path: '/' /*path.join(__dirname, BASE_PATHS.RESOURCES, 'bundle')*/,
  26.                                 filename: '[name].js'
  27.                         },
  28.                         devtool: 'source-map'
  29.                 };
  30.  
  31.  
  32. const fs = new MemoryFS();
  33.  
  34. /**
  35.  * @type {Compiler}
  36.  */
  37. const compiler = webpack(WEBPACK_CONFIGURATION);
  38. compiler.outputFileSystem = fs;
  39.  
  40. compiler.run((error, stats) =>
  41. {
  42.         console.log('webpack: bundle complete');
  43.         // console.assert((error == null), error);
  44.         // console.log(compiler);
  45.         // console.log(fs);
  46.  
  47.         var ast;
  48.  
  49.         if (fs.data) {
  50.                 Object.keys(fs.data).forEach((item) => {
  51.                         if (item.indexOf('.map') === -1) {
  52.  
  53.                                 // console.log('each:', item);
  54.                                 const content = fs.readFileSync(path.join('/', item),'utf8');
  55.  
  56.                                 ast = uglify.parse(content, { filename: item });
  57.  
  58.                                 // console.dir(ast);
  59.                                 // console.log(Object.prototype.toString.call(ast));
  60.  
  61.                         }
  62.                 });
  63.         }
  64.  
  65. });
  66.