Advertisement
Guest User

Untitled

a guest
Feb 3rd, 2021
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 14.89 KB | None | 0 0
  1. // webpack.config.js
  2.  
  3. const ExtractTextPlugin = require("extract-text-webpack-plugin");
  4. const HtmlWebpackPlugin = require("html-webpack-plugin");
  5. const CopyWebpackPlugin = require("copy-webpack-plugin");
  6. const nodeExternals = require("webpack-node-externals");
  7.  
  8. let path = require("path");
  9.  
  10. const env = process.env.NODE_ENV || "development";
  11. const generateHtml = env === "development" || env === "staging";
  12.  
  13. console.log("env", env);
  14.  
  15. module.exports = [
  16.   {
  17.     entry: {
  18.       ecoalf20: "./src/house/ecoalf20.js",
  19.       recrafted21: "./src/landings/recrafted21/index.js",
  20.       shoecare: "./src/landings/shoecare/index.js",
  21.       main: "./src/index.js",
  22.     },
  23.     target: "web",
  24.     output: {
  25.       path: __dirname + "/dist",
  26.       filename: "[name]_[hash].js",
  27.     },
  28.     devServer: {
  29.       contentBase: "./dist/",
  30.     },
  31.     module: {
  32.       loaders: [
  33.         {
  34.           test: /\.js$/,
  35.           exclude: /node_modules/,
  36.           loader: "babel-loader",
  37.           query: { presets: ["es2015", "stage-0"] },
  38.         },
  39.         {
  40.           test: /\.(css|scss)$/,
  41.           loader: ExtractTextPlugin.extract({
  42.             fallbackLoader: "style-loader",
  43.             loader: ["css-loader", "postcss-loader", "sass-loader"],
  44.           }),
  45.         },
  46.         {
  47.           test: /\.(jpe?g|png|gif|ttf|svg|eot|woff|woff2)$/i,
  48.           loader: "file-loader?name=/assets/[path][name].[ext]&publicPath=.",
  49.         },
  50.         { test: /icon_.+\.(svg)$/i, loader: "url-loader" },
  51.         { test: /\.html$/, loader: "html-loader" },
  52.       ],
  53.     },
  54.     plugins: [
  55.       new ExtractTextPlugin("./[name]_[hash].css"),
  56.       new CopyWebpackPlugin([{ from: "./src/assets", to: "assets" }]),
  57.     ].concat(
  58.       generateHtml
  59.         ? [
  60.            
  61.             new HtmlWebpackPlugin({
  62.               filename: "preseason.html",
  63.               template: "./src/kostadinov.html",
  64.               chunks: ["preseason"],
  65.             }),
  66.             new HtmlWebpackPlugin({
  67.               filename: "preseason_mb.html",
  68.               template: "./src/kostadinov_mb.html",
  69.               chunks: ["preseason"],
  70.             }),
  71.  
  72.             new HtmlWebpackPlugin({
  73.               filename: "covid19.html",
  74.               template: "./src/kostadinov.html",
  75.               chunks: ["covid19"],
  76.             }),
  77.             new HtmlWebpackPlugin({
  78.               filename: "covid19_mb.html",
  79.               template: "./src/kostadinov_mb.html",
  80.               chunks: ["covid19"],
  81.             }),
  82.             new HtmlWebpackPlugin({
  83.               filename: "lifetime.html",
  84.               template: "./src/kostadinov.html",
  85.               chunks: ["lifetime"],
  86.             }),
  87.             new HtmlWebpackPlugin({
  88.               filename: "lifetime_mb.html",
  89.               template: "./src/kostadinov_mb.html",
  90.               chunks: ["lifetime"],
  91.             }),  
  92.             new HtmlWebpackPlugin({
  93.               filename: "sail.html",
  94.               template: "./src/kostadinov.html",
  95.               chunks: ["sail"],
  96.             }),
  97.             new HtmlWebpackPlugin({
  98.               filename: "sail_mb.html",
  99.               template: "./src/kostadinov_mb.html",
  100.               chunks: ["sail"],
  101.             }),
  102.             new HtmlWebpackPlugin({
  103.               filename: "iconic20_beetle.html",
  104.               template: "./src/kostadinov.html",
  105.               chunks: ["iconic20_beetle"],
  106.             }),
  107.             new HtmlWebpackPlugin({
  108.               filename: "iconic20_beetle_mb.html",
  109.               template: "./src/kostadinov_mb.html",
  110.               chunks: ["iconic20_beetle"],
  111.             }),
  112.             new HtmlWebpackPlugin({
  113.               filename: "iconic20_wabi.html",
  114.               template: "./src/kostadinov.html",
  115.               chunks: ["iconic20_wabi"],
  116.             }),
  117.             new HtmlWebpackPlugin({
  118.               filename: "iconic20_wabi_mb.html",
  119.               template: "./src/kostadinov_mb.html",
  120.               chunks: ["iconic20_wabi"],
  121.             }),
  122.             new HtmlWebpackPlugin({
  123.               filename: "freeform.html",
  124.               template: "./src/kostadinov.html",
  125.               chunks: ["freeform"],
  126.             }),
  127.             new HtmlWebpackPlugin({
  128.               filename: "freeform_mb.html",
  129.               template: "./src/kostadinov_mb.html",
  130.               chunks: ["freeform"],
  131.             }),
  132.  
  133.             new HtmlWebpackPlugin({
  134.               filename: "iconic20_peu.html",
  135.               template: "./src/kostadinov.html",
  136.               chunks: ["iconic20_peu"],
  137.             }),
  138.             new HtmlWebpackPlugin({
  139.               filename: "iconic20_peu_mb.html",
  140.               template: "./src/kostadinov_mb.html",
  141.               chunks: ["iconic20_peu"],
  142.             }),
  143.  
  144.             new HtmlWebpackPlugin({
  145.               filename: "iconic20_twins.html",
  146.               template: "./src/boomer.html",
  147.               chunks: ["iconic20_twins"],
  148.             }),
  149.             new HtmlWebpackPlugin({
  150.               filename: "iconic20_twins_mb.html",
  151.               template: "./src/boomer_mb.html",
  152.               chunks: ["iconic20_twins"],
  153.             }),
  154.  
  155.             new HtmlWebpackPlugin({
  156.               filename: "iconic20_pelotas.html",
  157.               template: "./src/boomer.html",
  158.               chunks: ["iconic20_pelotas"],
  159.             }),
  160.             new HtmlWebpackPlugin({
  161.               filename: "iconic20_pelotas_mb.html",
  162.               template: "./src/boomer_mb.html",
  163.               chunks: ["iconic20_pelotas"],
  164.             }),
  165.             new HtmlWebpackPlugin({
  166.               filename: "ecoalf20.html",
  167.               template: "./src/kostadinov.html",
  168.               chunks: ["ecoalf20"],
  169.             }),
  170.             new HtmlWebpackPlugin({
  171.               filename: "ecoalf20_mb.html",
  172.               template: "./src/kostadinov_mb.html",
  173.               chunks: ["ecoalf20"],
  174.             }),
  175.             new HtmlWebpackPlugin({
  176.               filename: "recrafted21.html",
  177.               template: "./src/kostadinov.html",
  178.               chunks: ["recrafted21"],
  179.             }),
  180.             new HtmlWebpackPlugin({
  181.               filename: "recrafted21_mb.html",
  182.               template: "./src/kostadinov_mb.html",
  183.               chunks: ["recrafted21"],
  184.             }),
  185.             new HtmlWebpackPlugin({
  186.               filename: "shoecare.html",
  187.               template: "./src/kostadinov.html",
  188.               chunks: ["shoecare"],
  189.             }),
  190.             new HtmlWebpackPlugin({
  191.               filename: "shoecare_mb.html",
  192.               template: "./src/kostadinov_mb.html",
  193.               chunks: ["shoecare"],
  194.             }),
  195.             new HtmlWebpackPlugin({
  196.               filename: "anniversary20.html",
  197.               template: "./src/kostadinov.html",
  198.               chunks: ["anniversary20"],
  199.             }),
  200.             new HtmlWebpackPlugin({
  201.               filename: "anniversary20_mb.html",
  202.               template: "./src/kostadinov_mb.html",
  203.               chunks: ["anniversary20"],
  204.             }),
  205.             new HtmlWebpackPlugin({
  206.               filename: "penades20.html",
  207.               template: "./src/kostadinov.html",
  208.               chunks: ["penades20"],
  209.             }),
  210.             new HtmlWebpackPlugin({
  211.               filename: "penades20_mb.html",
  212.               template: "./src/kostadinov_mb.html",
  213.               chunks: ["penades20"],
  214.             }),
  215.             new HtmlWebpackPlugin({
  216.               filename: "portaferrisa.html",
  217.               template: "./src/kostadinov.html",
  218.               chunks: ["portaferrisa"],
  219.             }),
  220.             new HtmlWebpackPlugin({
  221.               filename: "portaferrisa_mb.html",
  222.               template: "./src/kostadinov_mb.html",
  223.               chunks: ["portaferrisa"],
  224.             }),
  225.  
  226.             new HtmlWebpackPlugin({
  227.               filename: "goretex20.html",
  228.               template: "./src/kostadinov.html",
  229.               chunks: ["goretex20"],
  230.             }),
  231.             new HtmlWebpackPlugin({
  232.               filename: "goretex20_mb.html",
  233.               template: "./src/kostadinov_mb.html",
  234.               chunks: ["goretex20"],
  235.             }),
  236.  
  237.             new HtmlWebpackPlugin({
  238.               filename: "pop20.html",
  239.               template: "./src/kostadinov.html",
  240.               chunks: ["pop20"],
  241.             }),
  242.             new HtmlWebpackPlugin({
  243.               filename: "pop20_mb.html",
  244.               template: "./src/kostadinov_mb.html",
  245.               chunks: ["pop20"],
  246.             }),
  247.             new HtmlWebpackPlugin({
  248.               filename: "neon.html",
  249.               template: "./src/kostadinov.html",
  250.               chunks: ["neon"],
  251.             }),
  252.             new HtmlWebpackPlugin({
  253.               filename: "neon_mb.html",
  254.               template: "./src/kostadinov_mb.html",
  255.               chunks: ["neon"],
  256.             }),
  257.             new HtmlWebpackPlugin({
  258.               filename: "willhelm20.html",
  259.               template: "./src/kostadinov.html",
  260.               chunks: ["willhelm20"],
  261.             }),
  262.             new HtmlWebpackPlugin({
  263.               filename: "willhelm20_mb.html",
  264.               template: "./src/kostadinov_mb.html",
  265.               chunks: ["willhelm20"],
  266.             }),
  267.             new HtmlWebpackPlugin({
  268.               filename: "boomer_crclr.html",
  269.               template: "./src/boomer.html",
  270.               chunks: ["boomer_crclr"],
  271.             }),
  272.             new HtmlWebpackPlugin({
  273.               filename: "boomer_crclr_mb.html",
  274.               template: "./src/boomer_mb.html",
  275.               chunks: ["boomer_crclr_mobile"],
  276.             }),
  277.             new HtmlWebpackPlugin({
  278.               filename: "boomer_courb.html",
  279.               template: "./src/boomer.html",
  280.               chunks: ["boomer_courb"],
  281.             }),
  282.             new HtmlWebpackPlugin({
  283.               filename: "boomer_courb_mb.html",
  284.               template: "./src/boomer_mb.html",
  285.               chunks: ["boomer_courb_mobile"],
  286.             }),
  287.             new HtmlWebpackPlugin({
  288.               filename: "boomer_nothing.html",
  289.               template: "./src/boomer.html",
  290.               chunks: ["boomer_nothing"],
  291.             }),
  292.             new HtmlWebpackPlugin({
  293.               filename: "boomer_nothing_mb.html",
  294.               template: "./src/boomer_mb.html",
  295.               chunks: ["boomer_nothing_mobile"],
  296.             }),
  297.             new HtmlWebpackPlugin({
  298.               filename: "index.html",
  299.               template: "./src/index.html",
  300.               chunks: ["main"],
  301.             }),
  302.             new HtmlWebpackPlugin({
  303.               filename: "mobile.html",
  304.               template: "./src/mobile.html",
  305.               chunks: ["main"],
  306.             }),
  307.             new HtmlWebpackPlugin({
  308.               filename: "willhelm.html",
  309.               template: "./src/kostadinov.html",
  310.               chunks: ["willhelm"],
  311.             }),
  312.             new HtmlWebpackPlugin({
  313.               filename: "willhelm_mb.html",
  314.               template: "./src/kostadinov_mb.html",
  315.               chunks: ["willhelm"],
  316.             }),
  317.             new HtmlWebpackPlugin({
  318.               filename: "twins_mb.html",
  319.               template: "./src/kostadinov_mb.html",
  320.               chunks: ["twins"],
  321.             }),
  322.             new HtmlWebpackPlugin({
  323.               filename: "twins.html",
  324.               template: "./src/kostadinov.html",
  325.               chunks: ["twins"],
  326.             }),
  327.             new HtmlWebpackPlugin({
  328.               filename: "pelotas_mb.html",
  329.               template: "./src/kostadinov_mb.html",
  330.               chunks: ["pelotas"],
  331.             }),
  332.             new HtmlWebpackPlugin({
  333.               filename: "pelotas.html",
  334.               template: "./src/kostadinov.html",
  335.               chunks: ["pelotas"],
  336.             }),
  337.             new HtmlWebpackPlugin({
  338.               filename: "beetle_mb.html",
  339.               template: "./src/kostadinov_mb.html",
  340.               chunks: ["beetle"],
  341.             }),
  342.             new HtmlWebpackPlugin({
  343.               filename: "beetle.html",
  344.               template: "./src/kostadinov.html",
  345.               chunks: ["beetle"],
  346.             }),
  347.             new HtmlWebpackPlugin({
  348.               filename: "peu_mb.html",
  349.               template: "./src/kostadinov_mb.html",
  350.               chunks: ["peu"],
  351.             }),
  352.             new HtmlWebpackPlugin({
  353.               filename: "peu.html",
  354.               template: "./src/kostadinov.html",
  355.               chunks: ["peu"],
  356.             }),
  357.             new HtmlWebpackPlugin({
  358.               filename: "technology.html",
  359.               template: "./src/kostadinov.html",
  360.               chunks: ["technology"],
  361.             }),
  362.             new HtmlWebpackPlugin({
  363.               filename: "technology_mb.html",
  364.               template: "./src/kostadinov_mb.html",
  365.               chunks: ["technology"],
  366.             }),
  367.  
  368.             new HtmlWebpackPlugin({
  369.               filename: "technology_kids.html",
  370.               template: "./src/kostadinov.html",
  371.               chunks: ["technology_kids"],
  372.             }),
  373.             new HtmlWebpackPlugin({
  374.               filename: "technology_kids_mb.html",
  375.               template: "./src/kostadinov_mb.html",
  376.               chunks: ["technology_kids"],
  377.             }),
  378.             new HtmlWebpackPlugin({
  379.               filename: "stores.html",
  380.               template: "./src/stores.html",
  381.               chunks: ["stores"],
  382.             }),
  383.             new HtmlWebpackPlugin({
  384.               filename: "stores.mb.html",
  385.               template: "./src/stores.mb.html",
  386.               chunks: ["stores"],
  387.             }),
  388.           ]
  389.         : []
  390.     ),
  391.     resolve: {
  392.       alias: {
  393.         react: "preact-compat",
  394.         "react-dom": "preact-compat",
  395.         // Not necessary unless you consume a module using `createClass`
  396.         "create-react-class": "preact-compat/lib/create-react-class",
  397.         // Not necessary unless you consume a module requiring `react-dom-factories`
  398.         "react-dom-factories": "preact-compat/lib/react-dom-factories",
  399.       },
  400.     },
  401.   },
  402.   {
  403.     target: "node",
  404.     externals: [nodeExternals()],
  405.     entry: {
  406.       render: "./src/render.js",
  407.     },
  408.     output: {
  409.       path: __dirname + "/dist",
  410.       filename: "render.js",
  411.       library: "app",
  412.       libraryTarget: "commonjs2",
  413.     },
  414.     devServer: {
  415.       contentBase: "./dist/",
  416.     },
  417.     module: {
  418.       loaders: [
  419.         {
  420.           test: /\.js$/,
  421.           exclude: /node_modules/,
  422.           loader: "babel-loader",
  423.           query: { presets: ["es2015", "stage-0"] },
  424.         },
  425.         { test: /\.(css|scss)$/, loader: "css-loader/locals" },
  426.         {
  427.           test: /\.(jpe?g|png|gif|ttf|woff2|svg|eot|woff)$/i,
  428.           loader:
  429.             "file-loader?name=/assets/[path][name].[ext]&publicPath=.&emitFile=false",
  430.         },
  431.         { test: /icon_.+\.(svg)$/i, loader: "url-loader" },
  432.         { test: /\.html$/, loader: "html-loader" },
  433.       ],
  434.     },
  435.     plugins: [],
  436.   },
  437. ];
  438.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement