panjareh
Version:
Panjareh using aparat and phoenix-video-player to play videos on desktops and tvs.
62 lines (52 loc) • 1.81 kB
JavaScript
const paths = require("./paths");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
// Where webpack looks to start building the bundle
entry: [paths.src + "/index.js"],
// Where webpack outputs the assets and bundles
output: {
path: paths.build,
filename: "[name].bundle.js",
publicPath: "/",
},
// Customize the webpack build process
plugins: [
// Removes/cleans build folders and unused assets when rebuilding
new CleanWebpackPlugin({
cleanOnceBeforeBuildPatterns: ["**/*", "!modules/**"],
}),
// Copies files from target to destination folder
new CopyWebpackPlugin({
patterns: [
{
from: paths.src + "/assets",
to: "assets",
globOptions: {
ignore: ["*.DS_Store"],
},
},
],
}),
// Generates an HTML file from a template
// Generates deprecation warning: https://github.com/jantimon/html-webpack-plugin/issues/1501
new HtmlWebpackPlugin({
title: "",
favicon: paths.src + "/assets/icons/favicon.ico",
template: paths.public + "/index.html", // template file
filename: "index.html", // output file
}),
],
// Determine how modules within the project are treated
module: {
rules: [
// JavaScript: Use Babel to transpile JavaScript files
{ test: /\.(js|jsx)$/, exclude: /node_modules/, use: ["babel-loader"] },
// Images: Copy image files to build folder
{ test: /\.(?:ico|gif|png|jpg|jpeg)$/i, type: "asset/resource" },
// Fonts and SVGs: Inline files
{ test: /\.(woff(2)?|eot|ttf|otf|svg|)$/, type: "asset/inline" },
],
},
};