generated from 4site-interactive-studios/engrid-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.common.js
executable file
·116 lines (112 loc) · 3.64 KB
/
webpack.common.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
const exec = require("child_process").execSync;
const ForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin");
const webpack = require("webpack");
const author = require("os").userInfo().username;
let engridScriptStylesVersion = exec("npm list @4site/engrid-styles")
.toString("utf8")
.split("@4site/engrid-styles@")[1]
.split("\n")[0];
const engridScriptScriptsVersion = exec("npm list @4site/engrid-scripts")
.toString("utf8")
.split("@4site/engrid-scripts@")[1]
.split("\n")[0];
const localeStringDateOptions = {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
};
const localeStringTimeOptions = {
hour12: false,
hour: "2-digit",
minute: "2-digit",
second: "2-digit",
timeZone: "America/New_York",
};
module.exports = {
entry: {
engrid: "./src/index.ts",
},
performance: {
assetFilter: function (assetFilename) {
return assetFilename.endsWith(".min.js", ".min.css");
},
hints: "error",
maxEntrypointSize: 2000000,
maxAssetSize: 500000,
},
plugins: [
new ForkTsCheckerWebpackPlugin(),
new webpack.BannerPlugin({
banner: `
((((
((((((((
(((((((
((((((( ****
((((((( *******
(((((((( ********** ********* **** ***
(((((((( ************ ************** *** ****
(((((( ******* ***** ***** * ** ****** *****
((( ******* ****** ****** **** ******** ************
******* ***** ********** **** **** **** ****
********************* ******* ***** **** ***************
******************** **** **** **** ****
***** ***** ******* ***** ***** ***** **
***** ************* **** ******* **********
ENGRID PAGE TEMPLATE ASSETS
Date: ${new Date().toLocaleString(
"en-US",
localeStringDateOptions
)} @ ${new Date().toLocaleString("en-US", localeStringTimeOptions)} ET
By: ${author}
ENGrid styles: v${engridScriptStylesVersion}
ENGrid scripts: v${engridScriptScriptsVersion}
Created by 4Site Studios
Come work with us or join our team, we would love to hear from you
https://www.4sitestudios.com/en
`,
}),
],
module: {
rules: [
{
test: /\.(ttf,oft,woff,woff2)$/,
use: {
loader: "file-loader",
options: {
name: "[name].[ext]",
outputPath: "fonts",
},
},
},
{
test: /\.(svg|png|jpg|gif)$/,
use: {
loader: "file-loader",
options: {
name: "[name].[ext]",
outputPath: "imgs",
},
},
},
{
test: /\.(ts|js)x?$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: "babel-loader",
options: {
presets: ["@babel/env", "@babel/preset-typescript"],
plugins: [
"@babel/proposal-class-properties",
"@babel/proposal-object-rest-spread",
"@babel/plugin-transform-runtime",
],
},
},
},
],
},
resolve: {
extensions: [".tsx", ".ts", ".js"],
},
};