const Path = require('path'); const BabiliPlugin = require('babili-webpack-plugin'); const ManifestPlugin = require('webpack-manifest-plugin'); const FileSystem = require("fs"); const webpack = require('webpack'); module.exports = { entry: { main: './public_html/assets/source/index.js' }, output: { filename: '[name].[chunkhash].js', path: Path.resolve(__dirname, 'public_html/assets/dist') }, module: { loaders: [ { test: /\.js$/, exclude: /(node_modules|bower_components)/, loader: 'babel-loader', query: { presets: ['env'] } } ], rules: [{ test: require.resolve('jquery'), use: [{ loader: 'expose-loader', options: '$' }] }] }, plugins: [ new BabiliPlugin(), new ManifestPlugin(), function() { this.plugin("done", function(statsData) { var stats = statsData.toJson(); if (!stats.errors.length) { var file = "index.phtml", dir = "private/app/views"; var html = FileSystem.readFileSync(Path.join(__dirname, dir, file), "utf8"); //console.log('stats', stats.assetsByChunkName); var htmlOutput = html.replace( /src=(["'])(.+?)?(main|build)(.+?)\.js(["'])/i, "src=" + "\"/assets/dist/"+stats.assetsByChunkName.main+"\""); FileSystem.writeFileSync( Path.join(__dirname, dir, file), htmlOutput); } }); } ] };