1
1
module . exports = function ( grunt ) {
2
+ const rollup = require ( 'rollup' ) ;
3
+ const rollupConfig = require ( './rollup.config.js' ) ;
2
4
const Diff = require ( 'diff' ) ;
3
- const nodeResolve = require ( '@rollup/plugin-node-resolve' ) ;
4
- const loadLocalePlugin = require ( './load-locales.js' ) ;
5
- const alias = require ( '@rollup/plugin-alias' ) ;
6
5
grunt . initConfig ( {
7
6
pkg : grunt . file . readJSON ( 'package.json' ) ,
8
7
cssmin : {
@@ -12,23 +11,10 @@ module.exports = function(grunt) {
12
11
} ,
13
12
combine : {
14
13
files : {
15
- 'dist/mapml.css' : [ 'node_modules/leaflet/dist/leaflet.css' , 'node_modules/leaflet.locatecontrol/dist/L.Control.Locate.css' , 'src/mapml.css' ]
14
+ 'dist/mapml.css' : [ 'node_modules/leaflet/dist/leaflet.css' , 'node_modules/leaflet.locatecontrol/dist/L.Control.Locate.css' , 'src/mapml.css' ]
16
15
}
17
16
}
18
17
} ,
19
- uglify : {
20
- options : {
21
- banner : '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n' ,
22
- sourceMap : {
23
- includeSources : true
24
- }
25
- } ,
26
- dist : {
27
- files : {
28
- 'dist/mapml.js' : [ '<%= rollup.main.dest %>' ]
29
- }
30
- }
31
- } ,
32
18
jshint : {
33
19
files : [ 'Gruntfile.js' , 'src/**/*.js' , 'test/**/*.spec.js' ] ,
34
20
options : {
@@ -49,7 +35,7 @@ module.exports = function(grunt) {
49
35
tasks : [ 'jshint' ]
50
36
} ,
51
37
copy : {
52
- main : {
38
+ main : {
53
39
files : [
54
40
{
55
41
expand : true ,
@@ -100,7 +86,7 @@ module.exports = function(grunt) {
100
86
expand : true ,
101
87
src : [ 'dist/*' ] ,
102
88
dest : '../experiments'
103
- }
89
+ }
104
90
]
105
91
} ,
106
92
extension : {
@@ -152,29 +138,7 @@ module.exports = function(grunt) {
152
138
src : [ '../web-map-doc/dist' ]
153
139
}
154
140
} ,
155
- rollup : {
156
- options : {
157
- format : 'es' ,
158
- plugins : [
159
- nodeResolve ( ) ,
160
- loadLocalePlugin ( ) ,
161
- alias ( {
162
- entries : [
163
- {
164
- find : 'leaflet' ,
165
- replacement : 'leaflet/dist/leaflet-src.esm.js'
166
- }
167
- ]
168
- } )
169
- ] ,
170
- external : './pmtilesRules.js'
171
- } ,
172
- main : {
173
- dest : 'dist/mapmlviewer.js' ,
174
- src : 'src/mapml/index.js' // Only one source file is permitted
175
- }
176
- } ,
177
- prettier : {
141
+ prettier : {
178
142
options : {
179
143
// https://prettier.io/docs/en/options.html
180
144
progress : true
@@ -188,22 +152,35 @@ module.exports = function(grunt) {
188
152
}
189
153
} ) ;
190
154
191
- grunt . loadNpmTasks ( 'grunt-contrib-uglify' ) ;
192
155
grunt . loadNpmTasks ( 'grunt-contrib-jshint' ) ;
193
156
grunt . loadNpmTasks ( 'grunt-contrib-watch' ) ;
194
157
grunt . loadNpmTasks ( 'grunt-contrib-copy' ) ;
195
158
grunt . loadNpmTasks ( 'grunt-contrib-cssmin' ) ;
196
159
grunt . loadNpmTasks ( 'grunt-contrib-clean' ) ;
197
- grunt . loadNpmTasks ( 'grunt-rollup' ) ;
198
160
grunt . loadNpmTasks ( 'grunt-prettier' ) ;
199
161
162
+ // "grunt-rollup" plugin seems no longer maintained
163
+ grunt . registerTask ( 'customRollup' , 'A custom Rollup build task' , async function ( ) {
164
+ const done = this . async ( ) ;
165
+ try {
166
+ // Use the configuration loaded from rollup.config.js
167
+ const bundle = await rollup . rollup ( rollupConfig ) ;
168
+ await bundle . write ( rollupConfig . output ) ;
169
+
170
+ console . log ( 'Rollup build completed successfully.' ) ;
171
+ done ( ) ;
172
+ } catch ( error ) {
173
+ console . error ( 'Rollup build failed:' , error ) ;
174
+ done ( false ) ;
175
+ }
176
+ } ) ;
200
177
grunt . registerTask ( 'format' , [ 'prettier' , 'jshint' ] ) ;
201
- grunt . registerTask ( 'default' , [ 'clean:dist' , 'copy:main' , 'copy:images' , 'format' , 'rollup ' ,
202
- 'uglify ', 'cssmin' , 'clean:tidyup '] ) ;
203
- grunt . registerTask ( 'experiments' , [ 'clean:experiments' , 'default' , 'copy:experiments ' ] ) ;
204
- grunt . registerTask ( 'extension' , [ 'clean:extension' , 'default' , 'copy:extension ' ] ) ;
205
- grunt . registerTask ( 'geoserver' , [ 'clean:geoserver' , 'default' , 'copy:geoserver ' ] ) ;
206
- grunt . registerTask ( 'docs' , [ 'clean:docs' , 'default' , 'copy:docs' ] ) ;
207
- grunt . registerTask ( 'sync' , [ 'default' , 'experiments' , 'extension' , 'docs' ] ) ;
178
+ grunt . registerTask ( 'default' , [ 'clean:dist' , 'copy:main' , 'copy:images' , 'format' , 'customRollup ' , 'cssmin' ] ) ;
179
+ grunt . registerTask ( 'experiments' , [ 'clean:experiments ', 'default' , 'copy:experiments '] ) ;
180
+ grunt . registerTask ( 'extension' , [ 'clean:extension' , 'default' , 'copy:extension ' ] ) ;
181
+ grunt . registerTask ( 'geoserver' , [ 'clean:geoserver' , 'default' , 'copy:geoserver ' ] ) ;
182
+ grunt . registerTask ( 'basemap' , [ 'clean:basemap' , 'default' , 'copy:basemap ' ] ) ;
183
+ grunt . registerTask ( 'docs' , [ 'clean:docs' , 'default' , 'copy:docs' ] ) ;
184
+ grunt . registerTask ( 'sync' , [ 'default' , 'experiments' , 'extension' , 'docs' ] ) ;
208
185
209
186
} ;
0 commit comments