Skip to content

Instantly share code, notes, and snippets.

@manuelj555
Last active January 21, 2017 16:51
Show Gist options
  • Save manuelj555/6d17280e1035c133007b49985489b411 to your computer and use it in GitHub Desktop.
Save manuelj555/6d17280e1035c133007b49985489b411 to your computer and use it in GitHub Desktop.
Paquetes para trabajar con gulp+vuejs
var gulp = require('gulp');
var babel = require('gulp-babel');
var gulpif = require('gulp-if');
var gutil = require('gulp-util');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var nano = require("gulp-cssnano");
var browserify = require('browserify');
var babelify = require('babelify');
var vueify = require('vueify');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
gulp.task('js', function () {
/*return gulp.src([
])
//.pipe(babel())
.pipe(gulpif(gutil.env.env == 'prod',uglify()))
.pipe(concat('app_head.js'))
.pipe(gulp.dest('web/compiled/js'));*/
});
gulp.task('js:vue', function () {
return browserify('app.js')
.transform(babelify, { presets: ['es2015'], plugins: ["transform-runtime"] })
.transform(vueify)
.bundle().on("error", function(err){ gutil.log(err); this.emit('end'); })
.pipe(source("xxx.js"))
.pipe(buffer())
.pipe(gulpif(gutil.env.env == 'prod', uglify()))
.pipe(gulp.dest("./public/js/"));
});
gulp.task('css', function () {
/*var dest = './web/compiled/css';
return gulp.src([
])
.pipe(concat('styles.css'))
.pipe(gulpif(gutil.env.env == 'prod', nano()))
.pipe(gulp.dest(dest));*/
});
//gulp.task('watch', function(){
//gulp.watch(['**/*.{css,scss}'], { cwd: './app/Resources/assets/'}, ['css', 'admin:css']);
//gulp.watch(['**/*.{css,scss}'], { cwd: './web/css/'}, ['css', 'admin:css']);
// gulp.watch([
// 'js/app.js',
// 'js/**/*.js',
// 'vue/**/*.vue',
// 'vue/**/*.js'
// ], { cwd: './assets'}, ['js:vue']);
//});
gulp.task('default', ['css', 'js', 'js:vue']);
var gulp = require("gulp");
var sass = require("gulp-sass");
var concat = require("gulp-concat");
var nano = require("gulp-cssnano");
var babel = require('gulp-babel');
var gulpif = require('gulp-if');
var gutil = require('gulp-util');
var uglify = require('gulp-uglify');
var sourcemaps = require('gulp-sourcemaps');
var browserSync = require('browser-sync').create();
var buildPath = './web/build/';
var cssBuildPath = buildPath + 'css/';
var jsBuildPath = buildPath + 'js/';
var isProd = gutil.env.env == 'prod';
gulp.task('sync', function () {
var url = gutil.env.server;
if (!url) {
gutil.error('Es necesario indicar la opción --server para iniciar Browser-Sync', url)
return;
}
gutil.log('Iniciando servidor Browser-Sync para la url:', url)
browserSync.init({
proxy: gutil.env.server,
ui: false
});
gulp.watch(['**/*.{css,scss}'], {cwd: 'app/Resources/assets/css/'}, ['css']);
});
gulp.task('css', function () {
return gulp.src([
'node_modules/bootstrap/dist/css/bootstrap.min.css',
'app/Resources/assets/css/**/*.{scss,css}',
])
.pipe(gulpif(!isProd, sourcemaps.init()))
.pipe(sass()).on('error', sass.logError)
.pipe(concat(name))
.pipe(gulpif(isProd, nano()))
.pipe(gulpif(!isProd, sourcemaps.write('.')))
.pipe(gulp.dest(path || cssBuildPath))
.pipe(browserSync.stream({match: '**/*.{scss,css}'}));
});
gulp.task('js', function () {
return gulp.src([
'node_modules/jquery/dist/jquery.min.js',
'node_modules/bootstrap/dist/js/bootstrap.min.js',
'node_modules/lodash/lodash.min.js',
'app/Resources/assets/js/**/*.js',
// 'app/Resources/assets/js/app.es6.js',
])
.pipe(gulpif(!isProd, sourcemaps.init()))
.pipe(gulpif('**/*.es6.js', babel({presets: ['es2015']}))).on('error', function (err) {
gutil.log(err);
this.emit('end');
})
.pipe(concat('app.js'))
.pipe(gulpif(isProd, uglify()))
.pipe(gulpif(!isProd, sourcemaps.write('.')))
.pipe(gulp.dest(jsBuildPath));
});
// gulp.task('copy_images', function () {
// return gulp.src(
// 'app/Resources/assets/img/**/*.{png,jpg,svg,gif}'
// )
// .pipe(gulp.dest(buildPath + 'img/'));
// });
gulp.task('watch', function () {
gulp.watch(['**/*.{css,scss}'], {cwd: 'app/Resources/assets/css/'}, ['css']);
gulp.watch(['**/*.js'], {cwd: 'app/Resources/assets/js/'}, ['js:frontend']);
});
gulp.task('default', ['css', 'js']);
// gulp.task('build', ['default', 'images']);
gulp.task('build', ['default', 'images']);
{
"author": "Manuel aguirre",
"devDependencies": {
"babel-core": "^6.13.2",
"babel-loader": "^6.2.5",
"babel-plugin-transform-runtime": "^6.12.0",
"babel-preset-es2015": "^6.13.2",
"babel-runtime": "^6.11.6",
"babelify": "^7.3.0",
"browserify": "^13.1.0",
"css-loader": "^0.24.0",
"gulp": "^3.9.1",
"gulp-babel": "^6.1.2",
"gulp-concat": "^2.6.0",
"gulp-if": "^2.0.1",
"gulp-uglify": "^2.0.0",
"gulp-uglifycss": "^1.0.6",
"gulp-util": "^3.0.7",
"vinyl-source-stream": "^1.1.0",
"vinyl-buffer": "^1.0.0",
"vue-hot-reload-api": "^1.3.3",
"vue-html-loader": "^1.2.3",
"vue-loader": "^8.5.2",
"vue-style-loader": "^1.0.0",
"vueify": "^8.7.0",
"webpack": "^1.13.2"
},
"dependencies": {
"vue": "^1.0.26"
}
}
@manuelj555
Copy link
Author

manuelj555 commented Jan 21, 2017

Comandos gulp basicos:

Desarrollo:

 npm install -D gulp gulp-concat gulp-if gulp-match gulp-sourcemaps gulp-uglify gulp-util gulp-cssnano gulp-sass gulp-babel browser-sync

Producción:

npm install -S bootstrap jquery lodash

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment