Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including gulp-gcloud-publish with all npm packages installed. Try it out:

var gulpGcloudPublish = require("gulp-gcloud-publish")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

gulp-gcloud-publish v2.1.1

Gulp task to publish to Google Clod Storage


NPM Build Status Code Coverage Code Quality Dependencies Status

Upload files to Google Cloud Storage with Gulp


npm install --save-dev gulp-gcloud-publish


First, you need to create your Google Cloud API credentials. Official Docs.

The plugin takes a configuration object with the following keys:

  • bucket String: Name of the bucket where we want to upload the file
  • gzip Boolean (optional): Let Google automatically gzip and mark metadata of your file. Regardless of this setting, already-gzipped files will have metadata properly set.
  • keyFilename String: Full path to the Google Cloud API keyfile (docs)
  • projectId String: Google Cloud Project ID (docs)
  • base String: base path to use in the bucket, default to /
  • public Boolean (optional): If set to true, marks the uploaded file as public
  • resumable Boolean (optional): Should be set to true for large files (>10Mb). Default is false.
  • transformDestination Function (optional): Manipulates the final destination of the file in the bucket.


If you would like to gzip the files, the plugin works best with gulp-gzip.

var gulp = require('gulp');
var gcPub = require('gulp-gcloud-publish');
var gzip = require('gulp-gzip'); // optional

gulp.task('publish', function() {

  return gulp.src('public/css/example.css')
      .pipe(gzip()) // optional
        bucket: 'bucket-name',
        keyFilename: 'path/to/keyFile.json',
        projectId: 'my-project-id',
        base: '/css',
        public: true,
        transformDestination: function(path) {
          return path.toLowerCase();
        metadata: {
            cacheControl: 'max-age=315360000, no-transform, public',
      })); // => File will be uploaded to /bucket-name/css/example.css
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free