this repo has no description
1const Webpack = require("webpack");
2const ExtractTextPlugin = require("extract-text-webpack-plugin");
3const CleanPlugin = require("clean-webpack-plugin");
4const HtmlWebpackPlugin = require("html-webpack-plugin");
5const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
6
7const path = require("path");
8
9const join = (...paths) => path.join(__dirname, ...paths);
10
11module.exports = {
12 resolve: {
13 extensions: [".js", ".css"],
14 modules: ["source", "node_modules"],
15 },
16 entry: {
17 "main.js": [join("source", "js", "main.js"), join("source", "js", "menu.js")],
18 "prism.js": join("source", "js", "prism.js"),
19 "style.css": join("source", "css", "style.css"),
20 "red.css": join("source", "css", "color", "red.css"),
21 "blue.css": join("source", "css", "color", "blue.css"),
22 "green.css": join("source", "css", "color", "green.css"),
23 "pink.css": join("source", "css", "color", "pink.css"),
24 },
25 output: {
26 filename: "[name]",
27 path: join("static/assets"),
28 publicPath: "",
29 },
30 performance: {
31 hints: false,
32 },
33 module: {
34 rules: [
35 {
36 test: /\.js$/,
37 exclude: /node_modules/,
38 use: {
39 loader: "babel-loader",
40 options: {
41 presets: ["@babel/preset-env"],
42 },
43 },
44 },
45 {
46 test: /\.(png|jpg|woff|woff2|ttf|eot|svg)$/,
47 use: [
48 {
49 loader: "url-loader",
50 options: {
51 limit: 8192,
52 },
53 },
54 ],
55 },
56 {
57 test: /\.css$/,
58 use: ExtractTextPlugin.extract({
59 fallback: "style-loader",
60 use: [
61 {
62 loader: "css-loader",
63 options: {
64 minimize: true,
65 modules: true,
66 importLoaders: 1,
67 localIdentName: "[local]",
68 },
69 },
70 {
71 loader: "postcss-loader",
72 options: {
73 config: {
74 path: "postcss.config.js",
75 },
76 },
77 },
78 ],
79 }),
80 },
81 ],
82 },
83 optimization: {
84 splitChunks: {
85 name: "vendor",
86 minChunks: 2,
87 },
88 minimizer: [
89 new UglifyJsPlugin({
90 sourceMap: true,
91 }),
92 ],
93 },
94 plugins: [new CleanPlugin(join("static/assets")), new ExtractTextPlugin("[name]")],
95};