-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathesbuild.config.js
More file actions
102 lines (97 loc) · 2.79 KB
/
esbuild.config.js
File metadata and controls
102 lines (97 loc) · 2.79 KB
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
const esbuild = require('esbuild');
const copy = require('esbuild-plugin-copy');
const { clean } = require('esbuild-plugin-clean');
const { globPlugin } = require('esbuild-plugin-glob');
const { sassPlugin } = require("esbuild-sass-plugin");
const { createImporter } = require("sass-extended-importer");
// Production mode optimizations
const isProduction = process.env.PRODUCTION === '1';
// Always generate sourcemaps - for production they get uploaded to Sentry then deleted
const sourcemap = true;
const drop = isProduction ? ['console', 'debugger'] : [];
if (isProduction) {
console.log('Building in production mode (sourcemaps for Sentry, no console/debugger)');
}
esbuild.build({
entryPoints : [
"javascript/admin.js",
"javascript/gallery.js",
"javascript/content.js",
"javascript/filelinks.js",
"javascript/imageworks-builder.js",
"javascript/image-batcher.js",
"javascript/totalcms.js",
"javascript/swagger.js",
"javascript/mailto-decoder.js",
"javascript/docs-highlight.js",
],
format : "esm",
platform : "browser",
bundle : true,
minify : true,
metafile : true,
splitting : true,
sourcemap : sourcemap,
drop : drop,
legalComments : 'external',
keepNames : true,
target : "esnext",
outdir : 'public/assets',
external : [],
plugins : [
clean({
patterns: ['public/assets'],
}),
],
}).catch(() => process.exit(1));
esbuild.build({
entryPoints : [
"css/*.scss",
"css/icons.css",
],
bundle : true,
minify : true,
metafile : true,
sourcemap : sourcemap,
legalComments : 'external',
outdir : 'public/assets',
external : [
"gallery/*",
"fonts/*",
],
loader: {
".woff2" : "file",
".woff" : "file",
".gif" : "file",
".ttf" : "file",
".svg" : "file",
},
plugins : [
globPlugin(),
copy.default({assets: {
from : "node_modules/lightgallery/fonts/*",
to : "gallery"
}}),
copy.default({assets: {
from : "node_modules/lightgallery/images/*",
to : "gallery"
}}),
copy.default({assets: {
from : "node_modules/htmx.org/dist/htmx.min.js",
to : "."
}}),
// Sass includes
sassPlugin({
loadPaths: [
"node_modules/codemirror/lib/",
"node_modules/codemirror/theme/",
"node_modules/codemirror/addon/",
"node_modules/dropzone/src/",
// "node_modules/lightgallery/scss/",
"css/lightgallery/",
"node_modules/highlight.js/styles/"
],
importer: createImporter(),
}),
],
}).catch(() => process.exit(1));