mirror of
https://github.com/Hopiu/vue-material.git
synced 2026-05-10 08:14:52 +00:00
88 lines
2.6 KiB
JavaScript
88 lines
2.6 KiB
JavaScript
import gulp from 'gulp';
|
|
import util from 'gulp-util';
|
|
import uglify from 'gulp-uglify';
|
|
import path from 'path';
|
|
import watchify from 'watchify';
|
|
import babelify from 'babelify';
|
|
import envify from 'envify/custom';
|
|
import vueify from 'vueify';
|
|
import xtend from 'xtend';
|
|
import prettyTime from 'pretty-hrtime';
|
|
import browserify from 'browserify';
|
|
import uglifyify from 'uglifyify';
|
|
import source from 'vinyl-source-stream';
|
|
import buffer from 'vinyl-buffer';
|
|
import config from '../config';
|
|
import browserSync from './browser-sync';
|
|
|
|
let app = 'main.js';
|
|
let entry = path.normalize(config.src.path + '/components/' + app);
|
|
|
|
gulp.task('browserify', () => {
|
|
let b = watchify(browserify(xtend(watchify.args, {
|
|
debug: true,
|
|
watch: true,
|
|
fullPaths: true,
|
|
keepAlive: true,
|
|
detectGlobals: false,
|
|
noparse: ['node_modules/**/*.js'],
|
|
entries: entry,
|
|
transform: [
|
|
envify({
|
|
NODE_ENV: 'development'
|
|
}),
|
|
vueify,
|
|
babelify.configure()
|
|
]
|
|
})));
|
|
|
|
let bundle = () => {
|
|
let bundleTimer = process.hrtime();
|
|
|
|
return b.bundle()
|
|
.on('error', (error) => {
|
|
let dirname = path.join(__dirname, '..', '..', 'src') + '/';
|
|
|
|
if (error.fileName) {
|
|
util.log(util.colors.red(error.name)
|
|
+ ': ' + util.colors.yellow(error.fileName.replace(dirname, ''))
|
|
+ ': ' + 'Line ' + util.colors.magenta(error.lineNumber)
|
|
+ ' & ' + 'Column ' + util.colors.magenta(error.columnNumber || error.column)
|
|
+ ': ' + util.colors.blue(error.description));
|
|
} else {
|
|
util.log(util.colors.red(error.name) + ': ' + util.colors.yellow(error.message.replace(dirname, '')));
|
|
}
|
|
})
|
|
.pipe(source(app))
|
|
.pipe(buffer())
|
|
.pipe(gulp.dest(path.normalize(config.dest.path + '/components')))
|
|
.pipe(browserSync.stream())
|
|
.on('finish', () => {
|
|
util.log('Browserify', util.colors.cyan(app), 'after', util.colors.magenta(prettyTime(process.hrtime(bundleTimer))));
|
|
});
|
|
};
|
|
|
|
b.on('update', bundle);
|
|
|
|
return bundle();
|
|
});
|
|
|
|
gulp.task('browserify-build', () => {
|
|
let bundleTimer = process.hrtime();
|
|
|
|
return browserify(entry)
|
|
.transform(envify({
|
|
NODE_ENV: 'development'
|
|
}))
|
|
.transform(vueify)
|
|
.transform(babelify.configure())
|
|
.transform(uglifyify)
|
|
.bundle()
|
|
.pipe(source(app))
|
|
.pipe(buffer())
|
|
.pipe(uglify())
|
|
.pipe(gulp.dest(path.normalize(config.dest.path + '/components')))
|
|
.on('finish', () => {
|
|
util.log('Browserify', util.colors.cyan(app), 'after', util.colors.magenta(prettyTime(process.hrtime(bundleTimer))));
|
|
});
|
|
});
|