https://github.com/osaton/gulp-studio-push
Crasman Studio push plugin
https://github.com/osaton/gulp-studio-push
Last synced: 11 months ago
JSON representation
Crasman Studio push plugin
- Host: GitHub
- URL: https://github.com/osaton/gulp-studio-push
- Owner: osaton
- Created: 2016-09-07T10:14:58.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2022-12-02T02:45:41.000Z (over 3 years ago)
- Last Synced: 2025-06-30T15:50:01.366Z (12 months ago)
- Language: JavaScript
- Size: 253 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Crasman Studio push plugin for gulp
## What is this
Modern version of the legendary push.php. Windows users can ditch Cygwin - no PHP here, only Node.
## Installation
```bash
$ npm install gulp-studio-push --save-dev
$ echo '.studio-credentials' >> .gitignore # Add .studio-credentials to .gitignore file
```
## Ignoring unwanted files
[Ignore patterns](https://git-scm.com/docs/gitignore) can be added to `.studio-ignore` file.
#### .studio-ignore example:
```gitignore
.DS_Store
dist/img/*.gif
!dist/img/allowed.gif
```
## Examples
### Push with different cache times for dev / production folders and Service Workers
```javascript
gulp.task('push', function () {
const studioPush = require('gulp-studio-push');
const studioSettings = {
studio: 'foo.studio.crasman.fi',
proxy: 'http://foo.intra:8080/',
concurrentUploads: 4 // Default 5, max 5
// Only needed if you don't want to use the default ignore file (.studio-ignore)
//ignoreFile: '.studio-ignore-2',
folders : [{
folderId: '5807aedb2b089f6b6f44cfaf',
localFolder: 'dist',
includeSubFolders: true,
createdFolderSettings: { // Cache settings for created folders
'dist/master': { // RegExp match
fileCacheMaxAge: 604800 // Week for master files
},
'dist/release-.*?': { // RegExp match
fileCacheMaxAge: 604800 // Week for release-0.1, release-0.2 etc.
},
'dist/.*?': { // RegExp match
fileCacheMaxAge: 1 // 1 second for everything else (dev branches)
}
},
createdFileHeaders: { // (version ^1.5.0)
// For master and release-* branch Service Workers (sw.js or service-worker.js)
'dist/(master|release-.*)/(sw.js|service-worker.js)': { // RegExp match
'Service-Worker-Allowed': '/', // Allow from root of domain
'Cache-Control': 'public, max-age=60, s-maxage=60' // Use very short max age for Service Workers in production
},
// development branch Service Workers
'dist/.*/(sw.js|service-worker.js)': { // RegExp match
'Service-Worker-Allowed': '/', // Allow from root of domain
'Cache-Control': 'private, must-revalidate, no-cache, no-store, max-age=0, s-maxage=0' // no cache for development branch Service Workers
}
}
}]
};
return gulp.src('dist').pipe(studioPush(studioSettings));
});
```
### Different gulp tasks for pushing specific folders
```javascript
const gulp = require('gulp');
const studioPush = require('gulp-studio-push');
const studioSettings = {
studio: 'foo.studio.crasman.fi',
proxy: 'http://foo.intra:8080/',
folders: [{
folderId: '568a7a2aadd4532b0f4f4f5b',
localFolder: 'dist/js',
includeSubFolders: true // Create and upload child folders too
}, {
folderId: '568a7a27add453aa1a4f4f58',
localFolder: 'dist/css'
}, {
folderId: '568a7a27add453aa1a4f4f58',
localFolder: 'dist/img'
}, {
folderId: '568a7a27add453aa1a4f4f58',
localFolder: 'other/folder'
}]
};
// Upload all folders
gulp.task('push', function () {
return gulp.src('.').pipe(studioPush(studioSettings));
});
// Upload dist/img folder
gulp.task('push-images', function () {
return gulp.src('dist/img').pipe(studioPush(studioSettings));
});
// Upload all folders starting with 'dist' (dist/js, dist/css, dist/img)
gulp.task('push-dist', function () {
return gulp.src('dist').pipe(studioPush(studioSettings));
});
// Upload css and js
gulp.task('push-foo', function () {
return gulp.src(['dist/js', 'dist/css']).pipe(studioPush(studioSettings));
});
```