From 014cc54ed017ee557cea373bca157b2f6e6c039f Mon Sep 17 00:00:00 2001 From: Matthew Harris Date: Wed, 6 Apr 2016 01:03:52 +0100 Subject: [PATCH] fixes #2 fixes #3 update code sample to work with Ionic v2 beta 3 --- app/app.js | 5 +- app/pages/broker-details/broker-details.js | 2 +- app/pages/broker-list/broker-list.js | 2 +- app/pages/favorite-list/favorite-list.js | 2 +- .../property-details/property-details.js | 2 +- app/pages/property-list/property-list.js | 2 +- app/pages/welcome/welcome.js | 2 +- config.xml | 22 +++++--- gulpfile.js | 48 +++++++++++++++++ ionic.config.js | 54 ------------------- ionic.project => ionic.config.json | 3 +- package.json | 33 +++++++++--- webpack.config.js | 47 ---------------- 13 files changed, 99 insertions(+), 125 deletions(-) create mode 100644 gulpfile.js delete mode 100644 ionic.config.js rename ionic.project => ionic.config.json (51%) delete mode 100644 webpack.config.js diff --git a/app/app.js b/app/app.js index 67b7c78..8434eef 100644 --- a/app/app.js +++ b/app/app.js @@ -1,4 +1,7 @@ -import {App, IonicApp, Platform} from 'ionic-framework/ionic'; +import 'zone.js'; +import 'reflect-metadata'; +import 'es6-shim'; +import {App, IonicApp, Platform} from 'ionic-angular'; import {WelcomePage} from './pages/welcome/welcome'; import {PropertyListPage} from './pages/property-list/property-list'; import {BrokerListPage} from './pages/broker-list/broker-list'; diff --git a/app/pages/broker-details/broker-details.js b/app/pages/broker-details/broker-details.js index 455960a..dcce56b 100644 --- a/app/pages/broker-details/broker-details.js +++ b/app/pages/broker-details/broker-details.js @@ -1,5 +1,5 @@ import {OnInit} from 'angular2/core'; -import {Page, NavController, NavParams} from 'ionic-framework/ionic'; +import {Page, NavController, NavParams} from 'ionic-angular'; import {BrokerService} from '../../services/broker-service'; @Page({ diff --git a/app/pages/broker-list/broker-list.js b/app/pages/broker-list/broker-list.js index 5f17170..90f32f0 100644 --- a/app/pages/broker-list/broker-list.js +++ b/app/pages/broker-list/broker-list.js @@ -1,5 +1,5 @@ import {OnInit} from 'angular2/core'; -import {Page, NavController, NavParams} from 'ionic-framework/ionic'; +import {Page, NavController, NavParams} from 'ionic-angular'; import {BrokerDetailsPage} from '../broker-details/broker-details'; import {BrokerService} from '../../services/broker-service'; diff --git a/app/pages/favorite-list/favorite-list.js b/app/pages/favorite-list/favorite-list.js index fbad947..2d9f991 100644 --- a/app/pages/favorite-list/favorite-list.js +++ b/app/pages/favorite-list/favorite-list.js @@ -1,5 +1,5 @@ import {OnInit} from 'angular2/core'; -import {Page, NavController, NavParams} from 'ionic-framework/ionic'; +import {Page, NavController, NavParams} from 'ionic-angular'; import {PropertyDetailsPage} from '../property-details/property-details'; import {PropertyService} from '../../services/property-service'; diff --git a/app/pages/property-details/property-details.js b/app/pages/property-details/property-details.js index c63fa6b..bb9053c 100644 --- a/app/pages/property-details/property-details.js +++ b/app/pages/property-details/property-details.js @@ -1,4 +1,4 @@ -import {Page, NavController, NavParams, Alert, ActionSheet} from 'ionic-framework/ionic'; +import {Page, NavController, NavParams, Alert, ActionSheet} from 'ionic-angular'; import {BrokerDetailsPage} from '../broker-details/broker-details'; import {PropertyService} from '../../services/property-service'; diff --git a/app/pages/property-list/property-list.js b/app/pages/property-list/property-list.js index 3121bee..ff9b0bf 100644 --- a/app/pages/property-list/property-list.js +++ b/app/pages/property-list/property-list.js @@ -1,5 +1,5 @@ import {OnInit} from 'angular2/core'; -import {Page, NavController, NavParams} from 'ionic-framework/ionic'; +import {Page, NavController, NavParams} from 'ionic-angular'; import {PropertyDetailsPage} from '../property-details/property-details'; import {PropertyService} from '../../services/property-service'; diff --git a/app/pages/welcome/welcome.js b/app/pages/welcome/welcome.js index 743fd52..f313caa 100644 --- a/app/pages/welcome/welcome.js +++ b/app/pages/welcome/welcome.js @@ -1,4 +1,4 @@ -import {Page, NavController, NavParams} from 'ionic-framework/ionic'; +import {Page, NavController, NavParams} from 'ionic-angular'; @Page({ templateUrl: 'build/pages/welcome/welcome.html' diff --git a/config.xml b/config.xml index 125eae0..646a133 100644 --- a/config.xml +++ b/config.xml @@ -18,12 +18,18 @@ - - - - - - - - + + + + + + + + + + + + + + diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..86d812a --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,48 @@ +var gulp = require('gulp'), + gulpWatch = require('gulp-watch'), + del = require('del'), + argv = process.argv; + + +/** + * Ionic hooks + * Add ':before' or ':after' to any Ionic project command name to run the specified + * tasks before or after the command. + */ +gulp.task('serve:before', ['watch']); +gulp.task('emulate:before', ['build']); +gulp.task('deploy:before', ['build']); +gulp.task('build:before', ['build']); + +// we want to 'watch' when livereloading +var shouldWatch = argv.indexOf('-l') > -1 || argv.indexOf('--livereload') > -1; +gulp.task('run:before', [shouldWatch ? 'watch' : 'build']); + +/** + * Ionic Gulp tasks, for more information on each see + * https://github.com/driftyco/ionic-gulp-tasks + * + * Using these will allow you to stay up to date if the default Ionic 2 build + * changes, but you are of course welcome (and encouraged) to customize your + * build however you see fit. + */ +var buildBrowserify = require('ionic-gulp-browserify-es2015'); +var buildSass = require('ionic-gulp-sass-build'); +var copyHTML = require('ionic-gulp-html-copy'); +var copyFonts = require('ionic-gulp-fonts-copy'); +var copyScripts = require('ionic-gulp-scripts-copy'); + +gulp.task('watch', ['sass', 'html', 'fonts', 'scripts'], function(){ + gulpWatch('app/**/*.scss', function(){ gulp.start('sass'); }); + gulpWatch('app/**/*.html', function(){ gulp.start('html'); }); + return buildBrowserify({ watch: true }); +}); + +gulp.task('build', ['sass', 'html', 'fonts', 'scripts'], buildBrowserify); +gulp.task('sass', buildSass); +gulp.task('html', copyHTML); +gulp.task('fonts', copyFonts); +gulp.task('scripts', copyScripts); +gulp.task('clean', function(done){ + del('www/build', done); +}); \ No newline at end of file diff --git a/ionic.config.js b/ionic.config.js deleted file mode 100644 index f0d6d0d..0000000 --- a/ionic.config.js +++ /dev/null @@ -1,54 +0,0 @@ -module.exports = { - proxies: null, - - paths: { - html : { - src: ['app/**/*.html'], - dest: "www/build" - }, - sass: { - src: ['app/theme/app.+(ios|md).scss'], - dest: 'www/build/css', - include: [ - 'node_modules/ionic-framework', - 'node_modules/ionicons/dist/scss' - ] - }, - fonts: { - src: ['node_modules/ionic-framework/fonts/**/*.+(ttf|woff|woff2)'], - dest: "www/build/fonts" - }, - watch: { - sass: ['app/**/*.scss'], - html: ['app/**/*.html'], - livereload: [ - 'www/build/**/*.html', - 'www/build/**/*.js', - 'www/build/**/*.css' - ] - } - }, - - autoPrefixerOptions: { - browsers: [ - 'last 2 versions', - 'iOS >= 7', - 'Android >= 4', - 'Explorer >= 10', - 'ExplorerMobile >= 11' - ], - cascade: false - }, - - // hooks execute before or after all project-related Ionic commands - // (so not for start, docs, but serve, run, etc.) and take in the arguments - // passed to the command as a parameter - // - // The format is 'before' or 'after' + commandName (uppercased) - // ex: beforeServe, afterRun, beforePrepare, etc. - hooks: { - beforeServe: function(argv) { - //console.log('beforeServe'); - } - } -}; diff --git a/ionic.project b/ionic.config.json similarity index 51% rename from ionic.project rename to ionic.config.json index 9abbcb8..6ec93fa 100644 --- a/ionic.project +++ b/ionic.config.json @@ -1,4 +1,5 @@ { "name": "ionic2-realty", - "app_id": "" + "app_id": "", + "v2": true } diff --git a/package.json b/package.json index 3139b12..7d846eb 100644 --- a/package.json +++ b/package.json @@ -3,19 +3,36 @@ "angular2": "2.0.0-beta.6", "es6-promise": "3.0.2", "es6-shim": "0.33.13", - "ionic-framework": "2.0.0-beta.1", + "ionic-angular": "2.0.0-beta.3", + "ionic-native": "^1.1.0", "ionicons": "3.0.0-alpha.3", "reflect-metadata": "0.1.2", "rxjs": "5.0.0-beta.0", "zone.js": "0.5.14" }, "devDependencies": { - "babel-core": "6.5.2", - "babel-loader": "6.2.3", "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-preset-es2015": "6.5.0", - "strip-sourcemap-loader": "0.0.1" + "babel-preset-es2015": "6.6.0", + "babelify": "7.2.0", + "del": "2.2.0", + "gulp": "3.9.1", + "gulp-watch": "4.3.5", + "ionic-gulp-browserify-es2015": "^1.0.0", + "ionic-gulp-fonts-copy": "^1.0.0", + "ionic-gulp-html-copy": "^1.0.0", + "ionic-gulp-sass-build": "^1.0.0", + "ionic-gulp-scripts-copy": "^1.0.0" }, - "name": "tmp", - "description": "tmp: An Ionic project" -} \ No newline at end of file + "name": "ionic-2-realty", + "description": "Ionic2 Realty: An Ionic project", + "version": "0.3.0", + "cordovaPlugins": [ + "cordova-plugin-device", + "cordova-plugin-console", + "cordova-plugin-whitelist", + "cordova-plugin-splashscreen", + "cordova-plugin-statusbar", + "ionic-plugin-keyboard" + ], + "cordovaPlatforms": [] +} diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 243ebb7..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,47 +0,0 @@ -var path = require('path'); - - -module.exports = { - entry: [ - path.normalize('es6-shim/es6-shim.min'), - 'reflect-metadata', - path.normalize('zone.js/dist/zone-microtask'), - path.resolve('app/app') - ], - output: { - path: path.resolve('www/build/js'), - filename: 'app.bundle.js', - pathinfo: false // show module paths in the bundle, handy for debugging - }, - module: { - loaders: [ - { - test: /\.js$/, - loader: 'babel', - query: { - presets: ['es2015'], - plugins: ['transform-decorators-legacy'] - }, - include: path.resolve('app'), - exclude: /node_modules/ - }, - { - test: /\.js$/, - include: path.resolve('node_modules/angular2'), - loader: 'strip-sourcemap' - } - ], - noParse: [ - /es6-shim/, - /reflect-metadata/, - /zone\.js(\/|\\)dist(\/|\\)zone-microtask/ - ] - }, - resolve: { - root: ['app'], - alias: { - 'angular2': path.resolve('node_modules/angular2') - }, - extensions: ['', '.js'] - } -};