-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.compress.js
More file actions
104 lines (97 loc) · 2.42 KB
/
webpack.compress.js
File metadata and controls
104 lines (97 loc) · 2.42 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
103
104
const FileManagerPlugin = require("filemanager-webpack-plugin");
const normalizePath = require("normalize-path");
const Utils = require("./utils");
const path = require("path");
const pluginRootFile = Utils.pluginRootFile;
const dist = normalizePath(path.join(__dirname, "__build"));
module.exports = async () => {
const version = (await Utils.getPluginInfo())?.version;
const zipName = version ? `${pluginRootFile}-${version}` : pluginRootFile;
const transformBuildPaths = (path) => {
if (Array.isArray(path) && path.length === 2) {
return {
source: path[0],
destination: `${dist}/zip/${pluginRootFile}/${path[1]}`,
};
}
return {
source: path,
destination: `${dist}/zip/${pluginRootFile}/${path}`,
};
};
const buildFiles = [
"app",
"assets",
"config",
"database",
"enqueues",
"languages",
"resources/views",
"routes",
"vendor",
"readme.txt",
`${pluginRootFile}.php`,
].map(transformBuildPaths);
const buildIgnoreFiles = [
"**/Gruntfile.js",
"**/.gitignore",
"vendor/vendor-src/bin",
"**/dev-*/**",
"**/*-test/**",
"**/*-beta/**",
"**/scss/**",
"**/sass/**",
"**/.*",
"**/build/*.txt",
"**/*.map",
"**/*.config",
"**/*.config.js",
"**/package.json",
"**/package-lock.json",
"**/tsconfig.json",
"**/mix-manifest.json",
"**/phpcs.xml",
"**/composer.json",
"**/composer.lock",
"**/*.md",
"**/*.mix.js",
"**/none",
"**/artisan",
"**/phpcs-report.xml",
"**/LICENSE",
"**/Installable",
"**/tests",
].map((path) => `${dist}/zip/${pluginRootFile}/${path}`);
return {
entry: {},
mode: "production",
plugins: [
new FileManagerPlugin({
events: {
onEnd: [
{ delete: [dist] },
{ copy: buildFiles },
{ delete: buildIgnoreFiles },
{
archive: [
{
source: `${dist}/zip`,
destination: `${dist}/${zipName}.zip`,
},
],
},
{
move: [
{
source: `${dist}/zip/${pluginRootFile}`,
destination: `${dist}/${pluginRootFile}`,
},
],
},
{ delete: [path.join(__dirname, "dist"), `${dist}/zip`] },
],
},
}),
],
};
};