diff --git a/gulpfile.js b/gulpfile.js index 31f61362f0..9a36aeae9e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -19,7 +19,10 @@ function getBabelOptions(moduleName, moduleType) { moduleIds: true, getModuleId: function(name) { if (moduleName == "e2e"){ - return name.replace(/\S*\/test\/[^\/]*\//, ''); + return name.replace(/^.*\/test\/[^\/]*\//, ''); + } + else if (moduleName == "demos"){ + return name.replace(/^(.*?)\//, '') } return moduleName + '/' + name.split('/test').join(''); @@ -54,6 +57,7 @@ gulp.task('build', function(done) { runSequence( 'bundle', 'e2e', + 'demos', 'sass', 'fonts', done @@ -244,19 +248,9 @@ gulp.task('e2e', function() { function createIndexHTML() { return through2.obj(function(file, enc, next) { - var self = this; - - var module = path.dirname(file.path) - .replace(__dirname, '') - .replace('/ionic/components/', 'e2e/') - .replace('/test/', '/') + - '/index'; - - var indexContents = indexTemplate.replace('{{MODULE}}', module); - - self.push(new VinylFile({ + this.push(new VinylFile({ base: file.base, - contents: new Buffer(indexContents), + contents: new Buffer(indexTemplate), path: path.join(path.dirname(file.path), 'index.html'), })); next(null, file); @@ -359,6 +353,37 @@ gulp.task('src', function(done){ ); }) +gulp.task('demos', function(){ + var gulpif = require('gulp-if'); + var lazypipe = require('lazypipe'); + var _ = require('lodash'); + var fs = require('fs'); + var VinylFile = require('vinyl'); + + var buildTest = lazypipe() + .pipe(tsc, tscOptions, null, tscReporter) + .pipe(babel, getBabelOptions('demos')) + + var indexTemplate = _.template(fs.readFileSync('scripts/demos/index.template.html'))(); + + return gulp.src(['demos/**/*']) + .pipe(cache('demos', { optimizeMemory: true })) + .pipe(gulpif(/.ts$/, buildTest())) + .pipe(gulpif(/index.js$/, createIndexHTML())) //TSC changes .ts to .js + .pipe(gulp.dest('dist/demos')) + + function createIndexHTML() { + return through2.obj(function(file, enc, next) { + this.push(new VinylFile({ + base: file.base, + contents: new Buffer(indexTemplate), + path: path.join(path.dirname(file.path), 'index.html'), + })); + next(null, file); + }); + } +}) + gulp.task('publish', function(done) { var version = flags.version; var ngVersion = flags.ngVersion; diff --git a/scripts/demos/index.template.html b/scripts/demos/index.template.html new file mode 100644 index 0000000000..eba2b7aa5f --- /dev/null +++ b/scripts/demos/index.template.html @@ -0,0 +1,21 @@ + + +
+ + + + + + + + +