diff --git a/static/webpack.config.js b/static/webpack.config.js new file mode 100644 index 0000000000000000000000000000000000000000..ed50843859600052aee3eb1f2964a720a1b96aab --- /dev/null +++ b/static/webpack.config.js @@ -0,0 +1,65 @@ +var ExtractTextPlugin = require("extract-text-webpack-plugin"); +var HtmlWebpackPlugin = require("html-webpack-plugin"); +var path = require("path"); +var webpack = require("webpack"); +var projectTemplatesRoot = "../../pinaxcon/templates/"; + +module.exports = { + context: path.resolve(__dirname, "src"), + entry: { + app: "./js/main.js" + }, + output: { + path: path.resolve(__dirname, "dist"), + filename: "js/site.js?[hash]", + publicPath: "/site_media/static" + }, + module: { + loaders: [ + { + test: /\.(gif|png|ico|jpg|svg)$/, + include: [ + path.resolve(__dirname, "src/images") + ], + loader: "file-loader?name=/images/[name].[ext]" + }, + { test: /\.less$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader!less-loader") }, + { + test: /\.(woff|woff2|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, + include: [ + path.resolve(__dirname, "/src/fonts"), + path.resolve(__dirname, "../node_modules") + ], + loader: "file-loader?name=/fonts/[name].[ext]?[hash]" + }, + { test: /\.jsx?$/, loader: "babel-loader", query: {compact: false} }, + ] + }, + resolve: { + extensions: ["", ".js", ".jsx"], + }, + plugins: [ + new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), + new ExtractTextPlugin("css/site.css?[hash]"), + new HtmlWebpackPlugin({ + filename: projectTemplatesRoot + "_styles.html", + templateContent: function(templateParams, compilation) { + var link = ""; + for (var css in templateParams.htmlWebpackPlugin.files.css) { + link += "\n" + } + return link; + } + }), + new HtmlWebpackPlugin({ + filename: projectTemplatesRoot + "_scripts.html", + templateContent: function(templateParams, compilation) { + var script = ""; + for (var js in templateParams.htmlWebpackPlugin.files.js) { + script += "\n" + } + return script; + } + }) + ] +};