-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGruntfile.js
More file actions
113 lines (111 loc) · 3.93 KB
/
Gruntfile.js
File metadata and controls
113 lines (111 loc) · 3.93 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
105
106
107
108
109
110
111
112
113
module.exports = function (pf) {
'use strict';
pf.initConfig({
pkg: pf.file.readJSON('package.json'),
webpack: {
options: require('./webpack.config.js'), // Load Webpack config
build: {} // Run Webpack
},
uglify: {
alpine: {
files: {
'resources/assets/js/alpine.min.js': ['resources/assets/js/alpine.bundle.js']
}
},
flowbite: {
files: {
'resources/assets/js/flowbite.min.js': ['resources/assets/js/flowbite.bundle.js']
}
},
lucide: {
files: {
'resources/assets/js/lucide.min.js': ['resources/assets/js/lucide.bundle.js']
}
},
admin: {
files: {
'resources/assets/js/admin.min.js': ['resources/assets/js/admin.bundle.js']
}
},
frontend: {
files: {
'resources/assets/js/frontend.min.js': ['resources/assets/js/frontend.bundle.js']
}
}
},
cssmin: {
admin: {
files: {
'resources/assets/css/admin.min.css': ['resources/assets/css/*.css', '!resources/assets/css/*.min.css', '!resources/assets/css/tailwind*.css']
}
},
frontend: {
files: {
'resources/assets/css/frontend.min.css': ['resources/assets/css/*.css', '!resources/assets/css/*.min.css', '!resources/assets/css/tailwind*.css']
}
}
},
copy: {
dist: {
expand: true,
src: [
'**',
'!.DS_Store',
'!Thumbs.db',
'!desktop.ini',
'!node_modules/**',
'!cache/**',
'!logs/**',
'!pf/**',
'!pf',
'!tests/**',
'!.dist/**',
'!Gruntfile.js',
'!package.json',
'!package-lock.json',
'!README.md',
'!tailwind.config.js',
'!TASK.txt',
'!plugin-frame.conf',
'!webpack.config.js',
'!translate-gen.mjs',
'!translate-twig.mjs',
'!wiki.txt',
'!composer.lock',
'!build.log',
// Exclude vendor packages
'!vendor/squizlabs/**',
'!vendor/dealerdirect/**',
'!vendor/mustache/**',
'!vendor/nikic/**',
'!vendor/phpcsstandards/**',
'!vendor/wp-coding-standards/**',
'!vendor/wp-cli/**'
],
dest: '.dist/plugin-frame'
}
},
clean: {
dist: ['.dist/plugin-frame'],
bundles: ['resources/assets/js/*.bundle.*'] // Clean up Webpack bundles after build
},
watch: {
scripts: {
files: ['resources/assets/js/*.js'],
tasks: ['webpack', 'uglify']
},
css: {
files: ['resources/assets/css/*.css'],
tasks: ['cssmin']
}
}
});
pf.loadNpmTasks('grunt-webpack');
pf.loadNpmTasks('grunt-contrib-uglify');
pf.loadNpmTasks('grunt-contrib-cssmin');
pf.loadNpmTasks('grunt-contrib-copy');
pf.loadNpmTasks('grunt-contrib-clean');
pf.loadNpmTasks('grunt-contrib-watch');
pf.registerTask('default', ['webpack', 'uglify', 'cssmin', 'clean:bundles']);
pf.registerTask('build:prod', ['clean:dist', 'webpack', 'uglify', 'cssmin', 'clean:bundles', 'copy:dist']);
};