UNPKG

@ithaka/bonsai

Version:
104 lines (98 loc) 3.31 kB
"use strict"; let path = require("path"), ExtractTextPlugin = require("extract-text-webpack-plugin"), StyleLintPlugin = require("stylelint-webpack-plugin"), WebpackShellPlugin = require("webpack-shell-plugin"); const extractSass = new ExtractTextPlugin("[name]"); const lintSass = new StyleLintPlugin({ syntax: "scss", configFile: ".stylelintrc" }); module.exports = { entry: { // For Bonsai compilation "dist/js/bonsai.bundle.js": "./js/index.js", "dist/css/bonsai.css": "./scss/global.scss", // For Style Guide Production/Test builds "documentation/assets/css/documentation.css": "./scss/documentation.scss", "documentation/assets/js/bonsai.bundle.js": "./js/index.js", "documentation/assets/js/colors.bundle.js": "./documentation/colors.js", // For local development build "styleguide/assets/css/documentation.css": "./scss/documentation.scss", "styleguide/assets/js/bonsai.bundle.js": "./js/index.js", "styleguide/assets/js/colors.bundle.js": "./documentation/colors.js", }, devtool: process.env.NODE_ENV === "production" ? "#hidden-source-map" : "#inline-source-map", module: { rules: [ { test: /\.html$/, use: "raw-loader" }, { test: /\.md$/, use: "raw-loader" }, { test: /\.modernizrrc(\.json)?$/, use: [ "modernizr-loader", "json-loader"] }, { test: /\.s?css$/, use: extractSass.extract({ use: [{ loader: "css-loader", options: { sourceMap: true } }, { loader: "sass-loader", options: { includePaths: [ "scss", "node_modules/" ], sourceMap: true, outputStyle: "expanded" } }], fallback: "style-loader" }) }, { test: /\.js$/, exclude: /node_modules(?!\/foundation-sites)/, loader: "babel-loader", options: { presets: ["env"] } }, { test: /\.js$/, exclude: /node_modules/, loader: "eslint-loader" }, { test: /\.(eot|woff|woff2|ttf|svg|png|jpe?g|gif)(\?\S*)?$/, loader: "url-loader?limit=100000&name=./dist/fonts/[hash].[ext]" } ] }, resolve: { alias: { modernizr$: path.resolve(__dirname, ".modernizrrc"), 'handlebars': 'handlebars/dist/handlebars.js' } }, externals: { jquery: "jQuery" }, output: { filename: "[name]" }, plugins: [ extractSass, lintSass, new WebpackShellPlugin({onBuildExit:["node generate-docs.js"]}) ] };