summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHendrik Leppelsack <hendrik@leppelsack.de>2017-10-30 11:10:40 +0100
committerHendrik Leppelsack <hendrik@leppelsack.de>2017-10-30 11:10:40 +0100
commit996c86b58926c20b4ea2b879d0822759ba45866c (patch)
tree2fd476cf69106fe06f74161b98b266a695fba0fd
parentad45d46e6913fa3143a8c3325bccc6cff204d1c4 (diff)
remove bower
-rw-r--r--.gitignore1
-rw-r--r--Makefile15
-rw-r--r--bower.json37
-rw-r--r--gulpfile.js44
-rw-r--r--package.json21
-rw-r--r--templates/main.php24
-rw-r--r--vendorScripts.json47
7 files changed, 115 insertions, 74 deletions
diff --git a/.gitignore b/.gitignore
index 1c6611c9..890455ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@ node_modules
build
js/public
js/vendor
+css/vendor
css/style.css
coverage
npm-debug.log
diff --git a/Makefile b/Makefile
index 3c3d1c3a..a9f79072 100644
--- a/Makefile
+++ b/Makefile
@@ -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"
+ ]
+ }
+}