diff --git a/gulp/ngXosVendor.js b/gulp/ngXosVendor.js
new file mode 100644
index 0000000..9e82c23
--- /dev/null
+++ b/gulp/ngXosVendor.js
@@ -0,0 +1,30 @@
+/*eslint-env node */
+(function () {
+  
+  'use strict';
+  const gulp = require('gulp');
+  const uglify = require('gulp-uglify');
+  const concat = require('gulp-concat');
+  const wiredep = require('wiredep');
+  const del = require('del');
+
+  module.exports = function(options){
+
+    gulp.task('cleanVendor', function(){
+      return del(
+        [
+          `${options.ngXosVendor}/ngXosVendor.min.js`
+        ],
+        {force: true}
+      );
+    });
+
+    gulp.task('vendor', ['cleanVendor'], function(){
+      const bowerDeps = wiredep().js;
+      return gulp.src(bowerDeps)
+        .pipe(concat('ngXosVendor.min.js'))
+        .pipe(uglify())
+        .pipe(gulp.dest(options.ngXosVendor));
+    });
+  };
+})();
\ No newline at end of file
