11module . exports = function ( grunt ) {
2+ const rollup = require ( 'rollup' ) ;
3+ const rollupConfig = require ( './rollup.config.js' ) ;
24 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' ) ;
65 grunt . initConfig ( {
76 pkg : grunt . file . readJSON ( 'package.json' ) ,
87 cssmin : {
@@ -12,23 +11,10 @@ module.exports = function(grunt) {
1211 } ,
1312 combine : {
1413 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' ]
1615 }
1716 }
1817 } ,
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- } ,
3218 jshint : {
3319 files : [ 'Gruntfile.js' , 'src/**/*.js' , 'test/**/*.spec.js' ] ,
3420 options : {
@@ -49,7 +35,7 @@ module.exports = function(grunt) {
4935 tasks : [ 'jshint' ]
5036 } ,
5137 copy : {
52- main : {
38+ main : {
5339 files : [
5440 {
5541 expand : true ,
@@ -100,7 +86,7 @@ module.exports = function(grunt) {
10086 expand : true ,
10187 src : [ 'dist/*' ] ,
10288 dest : '../experiments'
103- }
89+ }
10490 ]
10591 } ,
10692 extension : {
@@ -152,29 +138,7 @@ module.exports = function(grunt) {
152138 src : [ '../web-map-doc/dist' ]
153139 }
154140 } ,
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 : {
178142 options : {
179143 // https://prettier.io/docs/en/options.html
180144 progress : true
@@ -188,22 +152,35 @@ module.exports = function(grunt) {
188152 }
189153 } ) ;
190154
191- grunt . loadNpmTasks ( 'grunt-contrib-uglify' ) ;
192155 grunt . loadNpmTasks ( 'grunt-contrib-jshint' ) ;
193156 grunt . loadNpmTasks ( 'grunt-contrib-watch' ) ;
194157 grunt . loadNpmTasks ( 'grunt-contrib-copy' ) ;
195158 grunt . loadNpmTasks ( 'grunt-contrib-cssmin' ) ;
196159 grunt . loadNpmTasks ( 'grunt-contrib-clean' ) ;
197- grunt . loadNpmTasks ( 'grunt-rollup' ) ;
198160 grunt . loadNpmTasks ( 'grunt-prettier' ) ;
199161
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+ } ) ;
200177 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' ] ) ;
208185
209186} ;
0 commit comments