diff --git a/.gitignore b/.gitignore index d66347e..552abf8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -bower_components/ node_modules/ nbproject/ .idea/ @@ -7,3 +6,4 @@ nbproject/ /keys.js /dist brouter-web.*.zip +yarn-error.log diff --git a/README.md b/README.md index 85adc7e..b4aba55 100644 --- a/README.md +++ b/README.md @@ -73,24 +73,20 @@ This is needed for pre-loading the selected profile (unless you allowed local fi ### Dependencies -Requires [Node and npm](https://nodejs.org/) (or [io.js](https://iojs.org)), [Bower](https://bower.io/) and [Gulp](http://gulpjs.com/): - - npm install -g bower - npm install -g gulp +Requires [Node and npm](https://nodejs.org/) (or [io.js](https://iojs.org)) and [Gulp](http://gulpjs.com/). ### Install - npm install - bower install + yarn ### Build - gulp #for release - gulp debug #for development + yarn build #for release + yarn build debug #for development ### Develop - gulp watch + yarn build watch ## License diff --git a/bower.json b/bower.json deleted file mode 100644 index a60708d..0000000 --- a/bower.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "name": "brouter-web", - "version": "0.7.0", - "main": [ - "dist/brouter-web.css", - "dist/brouter-web.js" - ], - "ignore": [ - "**/.*", - "bower_components" - ], - "dependencies": { - "leaflet": "~1.3.0", - "leaflet-plugins": "~3.0.0", - "leaflet-routing": "nrenner/leaflet-routing#dev", - "async": "~0.9.2", - "d3": "~3.5.5", - "bootstrap": "4.0.0-alpha.5", - "DataTables": "~1.10.16", - "leaflet.elevation": "MrMufflon/Leaflet.Elevation#master", - "leaflet-control-geocoder": "~1.5.8", - "Leaflet.EasyButton": "*", - "bootbox": "~4.4.0", - "seiyria-bootstrap-slider": "^9.8.1", - "url-search-params": "~0.5.0", - "Leaflet.RestoreView": "makinacorpus/Leaflet.RestoreView#master", - "leaflet.stravasegments": "bagage/leaflet.stravasegments#master", - "leaflet.locatecontrol": "^0.60.0", - "font-awesome": "^4.7.0", - "bootstrap-select": "hugdx/bootstrap-select#patch-1", - "leaflet-sidebar-v2": "nrenner/leaflet-sidebar-v2#dev", - "leaflet.editable": "^1.1.0", - "codemirror": "^5.35.0", - "mapbbcode": "MapBBCode/mapbbcode#v1.2.0", - "polyline": "^0.2.0" - }, - "overrides": { - "leaflet": { - "main": [ - "dist/leaflet-src.js", - "dist/leaflet.css", - "dist/images/*.png" - ] - }, - "leaflet-plugins": { - "main": [ - "layer/tile/Bing.js" - ] - }, - "leaflet-routing": { - "main": [ - "src/utils/LineUtil.Snapping.js", - "src/utils/Marker.Snapping.js", - "src/L.Routing.js", - "src/L.Routing.Draw.js", - "src/L.Routing.Edit.js" - ] - }, - "bootstrap-select": { - "main": [ - "js/bootstrap-select.js", - "dist/css/bootstrap-select.css" - ] - }, - "bootstrap": { - "main": [ - "dist/js/bootstrap.js", - "dist/css/bootstrap.css" - ] - }, - "leaflet.elevation": { - "main": [ - "dist/leaflet.elevation-0.0.4.src.js", - "dist/leaflet.elevation-0.0.4.css", - "dist/images/*.png" - ], - "dependencies": null - }, - "leaflet.stravasegments": { - "main": [ - "dist/leaflet-triangle-marker.js", - "dist/L.StravaSegments.js" - ] - }, - "leaflet-control-geocoder": { - "main": [ - "dist/Control.Geocoder.js", - "dist/Control.Geocoder.css", - "images/*.+(png|gif)" - ] - }, - "url-search-params": { - "main": "build/url-search-params.js" - }, - "Leaflet.RestoreView": { - "main": "leaflet.restoreview.js" - }, - "font-awesome": { - "main": [ - "css/font-awesome.css", - "fonts/*" - ] - }, - "autosize": { - "main": "dist/autosize.js" - }, - "seiyria-bootstrap-slider": { - "dependencies": { - "jquery": "*", - "bootstrap": "*" - } - }, - "mapbbcode": { - "main": "src/controls/PermalinkAttribution.js" - } - }, - "resolutions": { - "leaflet": "^1.3.1" - } -} diff --git a/gulpfile.js b/gulpfile.js index a9eaadb..569493d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -5,7 +5,7 @@ var autoprefixer = require('autoprefixer'); var uglify = require('gulp-uglify'); var sourcemaps = require('gulp-sourcemaps'); var gulpDebug = require('gulp-debug'); -var mainBowerFiles = require('main-bower-files'); +var mainNpmFiles = require('npmfiles'); var del = require('del'); var path = require('path'); var cached = require('gulp-cached'); @@ -25,13 +25,17 @@ var modifyCssUrls = require('gulp-modify-css-urls'); var debug = false; var paths = { - // see overrides in bower.json - scriptsConfig: mainBowerFiles('**/url-search-params/**/*.js'), - scripts: mainBowerFiles([ - '**/*.js', - '!**/*.min.js', - '!**/url-search-params/**/*.js' - ]).concat([ + // see overrides in package.json + scriptsConfig: mainNpmFiles().filter(f => RegExp('url-search-params/.*\\.js', 'i').test(f)), + scripts: [ + 'node_modules/jquery/dist/jquery.js', + 'node_modules/tether/dist/js/tether.js', + 'node_modules/async/lib/async.js' + ].concat(mainNpmFiles().filter(f => + RegExp('.*\\.js', 'i').test(f) && + !RegExp('.*\\.min\\.js', 'i').test(f) && + !RegExp('url-search-params/.*\\.js', 'i').test(f) + )).concat([ 'js/Browser.js', 'js/Util.js', 'js/Map.js', @@ -40,9 +44,12 @@ var paths = { 'js/control/*.js', 'js/index.js' ]), - styles: mainBowerFiles('**/*.css').concat('css/*.css'), - images: mainBowerFiles('**/*.+(png|gif|svg)'), - fonts: mainBowerFiles('**/font-awesome/fonts/*'), + styles: mainNpmFiles().filter(f => + RegExp('.*\\.css', 'i').test(f) && + !RegExp('.*\\.min\\.css', 'i').test(f) + ).concat('css/*.css'), + images: mainNpmFiles().filter(f => RegExp('.*.+(png|gif|svg)', 'i').test(f)), + fonts: mainNpmFiles().filter(f => RegExp('font-awesome/fonts/.*', 'i').test(f)), dest: 'dist', destName: 'brouter-web' }; @@ -130,15 +137,12 @@ gulp.task('watch', function() { // Print paths to console, for manually debugging the gulp build // (comment out corresponding line of paths to print) gulp.task('log', function() { - //return gulp.src(mainBowerFiles(['**/*.js', '!**/*.min.js'])) - //return gulp.src(mainBowerFiles('**/*.css')) //return gulp.src(paths.scripts) //return gulp.src(paths.styles) //return gulp.src(paths.images) return gulp.src(paths.scripts.concat(paths.styles).concat(paths.images)) .pipe(gulpDebug()); - //return gulp.src(mainBowerFiles({debugging: true})); }); gulp.task('inject', function () { @@ -195,7 +199,7 @@ gulp.task('bump', ['bump:json', 'bump:html']); gulp.task('bump:json', ['release:init'], function() { gutil.log(gutil.colors.green('Bump to '+nextVersion)); - return(gulp.src(['./package.json', './bower.json']) + return(gulp.src(['./package.json']) .pipe(bump({version: nextVersion})) .pipe(gulp.dest('./'))); }); @@ -207,7 +211,7 @@ gulp.task('bump:html', ['release:init'], function() { }); gulp.task('release:commit', ['bump'], function() { - gulp.src(['./index.html', './package.json', './bower.json']) + gulp.src(['./index.html', './package.json']) .pipe(git.commit('release: '+nextVersion)); }); diff --git a/package.json b/package.json index c1f3c8e..4b55e57 100644 --- a/package.json +++ b/package.json @@ -13,9 +13,35 @@ }, "license": "MIT", "browserslist": "> 0.5%, last 2 versions, Firefox ESR, not dead, Explorer >= 10, Android >= 4.1, Safari >= 7, iOS >= 7", + "dependencies": { + "@mapbox/polyline": "^0.2.0", + "async": "~0.9.2", + "bootbox": "~4.4.0", + "bootstrap": "4.0.0-alpha.5", + "bootstrap-select": "hugdx/bootstrap-select#patch-1", + "codemirror": "^5.35.0", + "d3": "~3.5.5", + "datatables": "~1.10.16", + "font-awesome": "^4.7.0", + "jquery": "3.3.1", + "leaflet": "~1.3.0", + "leaflet-control-geocoder": "~1.5.8", + "leaflet-easybutton": "*", + "leaflet-editable": "^1.1.0", + "leaflet-elevation": "MrMufflon/Leaflet.Elevation#master", + "leaflet-plugins": "~3.0.0", + "leaflet-routing": "nrenner/leaflet-routing#dev", + "leaflet-sidebar-v2": "nrenner/leaflet-sidebar-v2#dev", + "leaflet.locatecontrol": "^0.60.0", + "leaflet.restoreview": "makinacorpus/Leaflet.RestoreView#master", + "leaflet.stravasegments": "*", + "mapbbcode": "MapBBCode/mapbbcode#v1.2.0", + "seiyria-bootstrap-slider": "seiyria/bootstrap-slider#^9.8.1", + "tether": "1.4.5", + "url-search-params": "~0.5.0" + }, "devDependencies": { "autoprefixer": "^8.1.0", - "bower": "^1.8.4", "del": "^1.1.1", "gulp": "^3.8.11", "gulp-bump": "^2.7.0", @@ -37,6 +63,118 @@ "gulp-uglify": "^1.1.0", "gulp-util": "^3.0.7", "gulp-zip": "^4.0.0", - "main-bower-files": "^2.6.2" + "npmfiles": "^0.1.1" + }, + "overrides": { + "leaflet": { + "main": [ + "dist/leaflet-src.js", + "dist/leaflet.css", + "dist/images/*.png" + ] + }, + "leaflet-plugins": { + "main": [ + "layer/tile/Bing.js" + ] + }, + "leaflet-routing": { + "main": [ + "src/utils/LineUtil.Snapping.js", + "src/utils/Marker.Snapping.js", + "src/L.Routing.js", + "src/L.Routing.Draw.js", + "src/L.Routing.Edit.js" + ] + }, + "leaflet-sidebar-v2": { + "main": [ + "js/leaflet-sidebar.js", + "css/leaflet-sidebar.css" + ] + }, + "leaflet-easybutton": { + "main": [ + "src/easy-button.js", + "src/easy-button.css" + ] + }, + "bootstrap-select": { + "main": [ + "js/bootstrap-select.js", + "dist/css/bootstrap-select.css" + ] + }, + "datatables": { + "main": [ + "media/**" + ] + }, + "codemirror": { + "main": [ + "lib/**" + ] + }, + "bootstrap": { + "main": [ + "dist/js/bootstrap.js", + "dist/css/bootstrap.css" + ] + }, + "leaflet-elevation": { + "main": [ + "dist/leaflet.elevation-0.0.4.src.js", + "dist/leaflet.elevation-0.0.4.css", + "dist/images/*.png" + ], + "dependencies": null + }, + "leaflet.stravasegments": { + "main": [ + "dist/leaflet-triangle-marker.js", + "dist/L.StravaSegments.js" + ] + }, + "leaflet-control-geocoder": { + "main": [ + "dist/Control.Geocoder.js", + "dist/Control.Geocoder.css", + "images/*.+(png|gif)" + ] + }, + "url-search-params": { + "main": "build/url-search-params.js" + }, + "Leaflet.RestoreView": { + "main": "leaflet.restoreview.js" + }, + "font-awesome": { + "main": [ + "css/font-awesome.css", + "fonts/*" + ] + }, + "leaflet.locatecontrol": { + "main": [ + "src/L.Control.Locate.js", + "dist/L.Control.Locate.css" + ] + }, + "autosize": { + "main": "dist/autosize.js" + }, + "seiyria-bootstrap-slider": { + "main": [ + "dist/bootstrap-slider.js", + "dist/css/bootstrap-slider.css" + ], + "dependencies": { + "jquery": "*", + "bootstrap": "*" + } + }, + "mapbbcode": { + "main": "src/controls/PermalinkAttribution.js" + } } }