UNPKG

generator-applicaster-starter

Version:

yeoman generator to kick start applicaster react-redux web app

79 lines (73 loc) 2.07 kB
import webpack from "webpack"; import path from "path"; import basscss from "postcss-basscss"; import cssnext from "cssnext"; import HtmlWebpackPlugin from "html-webpack-plugin"; import CleanWebpackPlugin from "clean-webpack-plugin"; const postcss = () => { return [ basscss({ raw: true, }), cssnext({ compress: true, features: { rem: false, pseudoElements: false, }, }), ]; }; const devtool = process.env.NODE_ENV === "development" ? "#source-map" : ""; const plugins = [ new CleanWebpackPlugin(["build"]), new HtmlWebpackPlugin({ template: path.join(__dirname, "/app/index.ejs"), filename: "index.html", }), new webpack.EnvironmentPlugin(["NODE_ENV"]), ]; const publicPath = process.env.NODE_ENV === "development" ? "/" : "<%= serverPath %>"; module.exports = { context: path.join(__dirname, "/app"), entry: { javascript: ["babel-polyfill", "./index.jsx"], }, output: { path: path.join(__dirname, "/build"), filename: "bundle.[hash].js", publicPath, }, resolve: { root: [path.join(__dirname, "app")], extensions: ["", ".js", ".jsx", ".css"], }, module: { loaders: [{ test: /\.jsx?$/, exclude: /node_modules/, loaders: ["react-hot", "babel-loader"], }, { test: /\.html$/, loader: "file?name=[name].[ext]", }, { test: /\.json$/, loader: "json", }, { test: /\.css$/, loader: "style-loader!css-loader!postcss-loader", }, { test: /\.scss$/, loaders: ['style', 'css', 'sass'] }, { test: /\.(woff|woff2|eot|ttf|svg)$/, loader: "url-loader?limit=1000000", }, { test: /\.(png|jpg)$/, loader: "file-loader?name=assets/images/[name].[ext]", }], }, postcss, devtool, plugins, };