diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 15 | ||||
-rw-r--r-- | bower.json | 37 | ||||
-rw-r--r-- | gulpfile.js | 44 | ||||
-rw-r--r-- | package.json | 21 | ||||
-rw-r--r-- | templates/main.php | 24 | ||||
-rw-r--r-- | vendorScripts.json | 47 |
7 files changed, 115 insertions, 74 deletions
@@ -2,6 +2,7 @@ node_modules build js/public js/vendor +css/vendor css/style.css coverage npm-debug.log @@ -150,19 +150,8 @@ appstore: $(project_directory)/lib \ $(project_directory)/templates \ $(project_directory)/js/public \ - $(project_directory)/js/dav/dav.js \ - $(project_directory)/js/vendor/angular/angular.js \ - $(project_directory)/js/vendor/angular-route/angular-route.js \ - $(project_directory)/js/vendor/angular-cache/dist/angular-cache.js \ - $(project_directory)/js/vendor/angular-uuid4/angular-uuid4.js \ - $(project_directory)/js/vendor/vcard/src/vcard.js \ - $(project_directory)/js/vendor/angular-bootstrap/ui-bootstrap.min.js \ - $(project_directory)/js/vendor/angular-bootstrap/ui-bootstrap-tpls.min.js \ - $(project_directory)/js/vendor/angular-sanitize/angular-sanitize.js \ - $(project_directory)/js/vendor/ui-select/dist/select.js \ - $(project_directory)/js/vendor/jquery-timepicker/jquery.ui.timepicker.js \ - $(project_directory)/js/vendor/angular-click-outside/clickoutside.directive.js \ - $(project_directory)/js/vendor/ngclipboard/dist/ngclipboard.min.js + $(project_directory)/js/vendor \ + $(project_directory)/js/dav/dav.js # Command for running JS and PHP tests. Works for package.json files in the js/ # and root directory. If phpunit is not installed systemwide, a copy is fetched diff --git a/bower.json b/bower.json deleted file mode 100644 index 17054792..00000000 --- a/bower.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "contacts", - "authors": [ - "Hendrik Leppelsack <hendrik@leppelsack.de>" - ], - "description": "", - "main": "", - "moduleType": [], - "license": "AGPL", - "homepage": "", - "private": true, - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "core/vendor", - "test", - "tests" - ], - "dependencies": { - "angular": "1.5.8", - "angular-bootstrap": "1.1.2", - "angular-cache": "4.6.0", - "angular-route": "1.5.8", - "angular-sanitize": "1.5.8", - "angular-uuid4": "0.3.1", - "jquery-timepicker": "883bb2cd94", - "ui-select": "angular-ui/ui-select#0.19.6", - "vcard": "0.2.7", - "angular-click-outside": "^2.10.1", - "ngclipboard": "^1.1.1" - }, - "devDependencies": { - "angular-mocks": "1.5.8", - "underscore": "^1.8.3" - } -} diff --git a/gulpfile.js b/gulpfile.js index c45a44ae..56d8e7b8 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -3,10 +3,13 @@ var gulp = require('gulp'), eslint = require('gulp-eslint'), stylelint = require('gulp-stylelint'); ngAnnotate = require('gulp-ng-annotate'), + merge = require('merge-stream'), KarmaServer = require('karma').Server, sourcemaps = require('gulp-sourcemaps'); -gulp.task('default', ['eslint', 'stylelint'], function() { +var dependencies = require('./vendorScripts.json'); + +gulp.task('build', function() { return gulp.src([ 'js/main.js', 'js/components/**/*.js', @@ -23,6 +26,26 @@ gulp.task('default', ['eslint', 'stylelint'], function() { .pipe(gulp.dest('js/public')); }); +gulp.task('vendor', function() { + let stream = require('merge-stream')();; + + for(let dependency in dependencies.scripts) { + stream.add( + gulp.src(dependencies.scripts[dependency]) + .pipe(gulp.dest(`js/vendor/${dependency}`)) + ); + } + + for(let dependency in dependencies.styles) { + stream.add( + gulp.src(dependencies.styles[dependency]) + .pipe(gulp.dest(`css/vendor/${dependency}`)) + ); + } + + return stream; +}); + gulp.task('eslint', function() { return gulp.src([ 'js/main.js', @@ -45,13 +68,18 @@ gulp.task('stylelint', function() { })); }); -gulp.task('watch', ['default'], function() { - gulp.watch(['js/**/*.js', '!js/public/**/*.js', 'css/*.scss'], ['default']); +gulp.task('karma', function(done){ + new KarmaServer({ + configFile: __dirname + '/karma.conf.js', + singleRun: true + }, done).start(); }); -gulp.task('karma', function(done){ - new KarmaServer({ - configFile: __dirname + '/karma.conf.js', - singleRun: true - }, done).start(); + +gulp.task('default', ['vendor', 'eslint', 'stylelint', 'build']); + +gulp.task('test', ['karma']); + +gulp.task('watch', ['default'], function() { + gulp.watch(['js/**/*.js', '!js/public/**/*.js', 'css/*.scss'], ['eslint', 'stylelint', 'build']); }); diff --git a/package.json b/package.json index a5352cb4..a6d9bd62 100644 --- a/package.json +++ b/package.json @@ -18,13 +18,12 @@ "homepage": "https://github.com/nextcloud/contacts#readme", "scripts": { "test": "node node_modules/gulp-cli/bin/gulp.js karma", - "prebuild": "npm install && npm update && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update", + "prebuild": "npm install && npm update", "build": "node node_modules/gulp-cli/bin/gulp.js", "scss-compile": "cat build/css/variables.scss css/style.scss | node-sass --include-path css > css/style.css", "watch": "node node_modules/gulp-cli/bin/gulp.js watch" }, "devDependencies": { - "bower": "^1.7.9", "chai": "^3.5.0", "codecov": "^1.0.1", "gulp": "^3.9.1", @@ -41,9 +40,23 @@ "karma-mocha": "^1.1.1", "karma-mocha-reporter": "^2.1.0", "karma-sinon": "^1.0.5", + "merge-stream": "^1.0.1", "mocha": "^3.0.2", + "node-sass": "^4.5.3", "sinon": "^1.17.5", - "stylelint-config-standard": "^17.0.0", - "node-sass": "^4.5.3" + "stylelint-config-standard": "^17.0.0" + }, + "dependencies": { + "@iamadamjowett/angular-click-outside": "^2.10.1", + "angular": "~1.5.8", + "angular-cache": "^4.6.0", + "angular-route": "~1.5.8", + "angular-sanitize": "~1.5.8", + "angular-ui-bootstrap": "^2.5.6", + "angular-uuid4": "^0.3.1", + "jquery-timepicker": "^1.3.3", + "ngclipboard": "^1.1.2", + "ui-select": "^0.19.8", + "vcard-parser": "^0.2.7" } } diff --git a/templates/main.php b/templates/main.php index a4a15127..c16c7367 100644 --- a/templates/main.php +++ b/templates/main.php @@ -1,29 +1,29 @@ <?php // angular + components -script('contacts', 'vendor/angular/angular'); -script('contacts', 'vendor/angular-route/angular-route'); -script('contacts', 'vendor/angular-uuid4/angular-uuid4'); -script('contacts', 'vendor/angular-cache/dist/angular-cache'); -script('contacts', 'vendor/angular-sanitize/angular-sanitize'); -script('contacts', 'vendor/ui-select/dist/select'); +script('contacts', 'vendor/angular/angular.min'); +script('contacts', 'vendor/angular-route/angular-route.min'); +script('contacts', 'vendor/angular-uuid4/angular-uuid4.min'); +script('contacts', 'vendor/angular-cache/angular-cache.min'); +script('contacts', 'vendor/angular-sanitize/angular-sanitize.min'); +script('contacts', 'vendor/ui-select/select'); script('contacts', 'vendor/angular-click-outside/clickoutside.directive'); -script('contacts', 'vendor/ngclipboard/dist/ngclipboard.min'); +script('contacts', 'vendor/ngclipboard/ngclipboard.min'); // DAV libraries script('contacts', 'dav/dav'); -script('contacts', 'vendor/vcard/src/vcard'); +script('contacts', 'vendor/vcard/vcard'); // compiled version of app javascript script('contacts', 'public/script'); -script('contacts', 'vendor/angular-bootstrap/ui-bootstrap.min'); -script('contacts', 'vendor/angular-bootstrap/ui-bootstrap-tpls.min'); -script('contacts', 'vendor/jquery-timepicker/jquery.ui.timepicker'); +script('contacts', 'vendor/ui-bootstrap/ui-bootstrap'); +script('contacts', 'vendor/ui-bootstrap/ui-bootstrap-tpls'); +script('contacts', 'vendor/jquery-timepicker/jquery.timepicker'); // all styles style('contacts', 'style'); -vendor_style('select2/select2'); +style('contacts', 'vendor/ui-select/select.min'); ?> <div id="app" ng-app="contactsApp"> diff --git a/vendorScripts.json b/vendorScripts.json new file mode 100644 index 00000000..7ab198b5 --- /dev/null +++ b/vendorScripts.json @@ -0,0 +1,47 @@ +{ + "scripts": { + "angular": [ + "node_modules/angular/angular*.js", + "node_modules/angular/angular.min.js.map" + ], + "angular-cache": [ + "node_modules/angular-cache/dist/*.js", + "node_modules/angular-cache/dist/angular-cache.*.map" + ], + "angular-route": [ + "node_modules/angular-route/*.js", + "node_modules/angular-route/*.map" + ], + "angular-sanitize": [ + "node_modules/angular-sanitize/angular-sanitize.*" + ], + "ui-bootstrap": [ + "node_modules/angular-ui-bootstrap/dist/ui-bootstrap.js", + "node_modules/angular-ui-bootstrap/dist/ui-bootstrap-tpls.js" + ], + "angular-uuid4": [ + "node_modules/angular-uuid4/angular-uuid4.min.js" + ], + "jquery-timepicker": [ + "node_modules/jquery-timepicker/jquery.timepicker.js" + ], + "ngclipboard": [ + "node_modules/ngclipboard/dist/*" + ], + "ui-select": [ + "node_modules/ui-select/dist/select*.js", + "node_modules/ui-select/dist/select.min.js.map" + ], + "vcard": [ + "node_modules/vcard-parser/src/*" + ], + "angular-click-outside": [ + "node_modules/@iamadamjowett/angular-click-outside/clickoutside.directive.js" + ] + }, + "styles": { + "ui-select": [ + "node_modules/ui-select/dist/select.min.css" + ] + } +} |