gulp-packagingjs
v0.4.3
Published
A GULP implementation of the packagingjs module.
Downloads
4
Maintainers
Readme
GULP PackagingJS
ES4 style packaging, namespacing, and dependency implementation in JavaScript for GULP.
Install
$ npm install --save-dev gulp-packagingjs
Usage Via GULP
var gulp = require('gulp');
var gulp_packagingjs = require('gulp-packagingjs');
gulp.task('packagingjs', function()
{
var input = './sources/*.js';
var output = './compiled/';
return gulp
.src(input)
.pipe(gulp_packagingjs({strict:true, autorun:'instance', roots:['./sources/']}))
.pipe(gulp.dest(output));
});
gulp.task('default', ['packagingjs']);
Usage Via GULP w/gulp-sourcemaps
var gulp = require('gulp');
var gulp_packagingjs = require('gulp-packagingjs');
var sourcemaps = require('gulp-sourcemaps');
gulp.task('packagingjs', function()
{
var input = './sources/*.js';
var output = './compiled/';
return gulp
.src(input)
.pipe(sourcemaps.init())
.pipe(gulp_packagingjs({strict:true, autorun:'instance', roots:['./sources/']}))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest(output));
});
gulp.task('default', ['packagingjs']);
Using PackagingJS
See the packagingjs npm module for documentation on PackagingJS itself. The functionality is the same except for some differences noted here.
Notes
Do not make your output folder the same as the source folder. The files output with the same name...so you can see how that wouldn't work.
Only have your path/glob point to files you want to use as base classes.
Unlike normal packagingjs you do not give a name of the the base class when calling the function, just give your compiling options. This is because for GULP it can accept a glob that points to multiple, meaning multiple base classes getting compiled.
To facilitate #3 (making multiple base classes) you just point the glob to those class files...but that also means you lose control over namespacing for those base classes. So when using gulp-packagingjs you must make all of your base classes non-namespaced. Their dependencies all work as normal though, only the one base class per compilation has this limitation.
Filenames for input will be same as output for each base class file compiled, so it is suggested that you use descriptive class naming, e.g. "HomePage.js" and "SpaceshipGame.js"