Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var gulp = require('gulp'),
- browserify = require('browserify'),
- tsify = require('tsify'),
- pretty = require('prettysize'),
- assign = require('lodash.merge'),
- source = require('vinyl-source-stream'),
- buffer = require('vinyl-buffer'),
- sourcemaps = require('gulp-sourcemaps'),
- uglify = require('gulp-uglify'),
- stream = require('stream');
- htmlmin = require('htmlmin');
- sass = require('node-sass');
- var $ = require('gulp-load-plugins')({
- pattern: ['gulp-*', 'del']
- });
- module.exports = function(options) {
- var inlineOptions = {
- useRelativePaths: true,
- removeLineBreaks: true,
- supportNonExistentFiles: true,
- target: 'es5',
- supportNonExistentFiles: true,
- styleProcessor: function (path, ext, file, callback) {
- try {
- if(file !== ''){
- var processedSass = sass.renderSync({
- data: file,
- includePaths: []
- });
- }
- else{
- var processedSass = '';
- }
- callback(null, processedSass.css ? processedSass.css.toString() : processedSass);
- }
- catch (err) {
- callback(err);
- }
- }
- };
- var defaultOptions = {
- watch: false,
- src: [options.src + '/main.ts'],
- outputPath: options.tmp + '/serve/app',
- outputFile: 'app.bundle.js',
- minify: false,
- browserifyOptions: {
- cache: {},
- packageCache: {},
- debug: true
- },
- watchifyOptions: {},
- tsifyOptions: {},
- uglifyOptions: {},
- onError: function(err){
- console.error(err.toString());
- },
- onLog: function(log){
- console.log((log = log.split(' '), log[0] = pretty(log[0]), log.join(' ')));
- }
- };
- gulp.task('transpile', ['styles'], function(o){
- var b = browserify(defaultOptions.src, defaultOptions.browserifyOptions)
- .plugin(tsify, defaultOptions.tsifydefaultOptions);
- var debug = defaultOptions.browserifyOptions.debug;
- return b.bundle()
- .on('error', defaultOptions.onError)
- .on('log', defaultOptions.onLog)
- .pipe(source(defaultOptions.outputFile))
- .pipe(buffer())
- .pipe(debug ? sourcemaps.init({ loadMaps: true }) : noop())
- .pipe(defaultOptions.minify ? uglify(defaultOptions.uglifyOptions) : noop())
- .pipe(debug ? sourcemaps.write('./') : noop())
- .pipe(gulp.dest(options.tmp + '/serve/app'));
- });
- function noop(){
- return new stream.PassThrough({ objectMode: true });
- }
- }
Add Comment
Please, Sign In to add comment