Skip to content

BryanGrezeszak/gulp-packagingjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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
  1. 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.

  2. Only have your path/glob point to files you want to use as base classes.

  3. 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.

  4. 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.

  5. 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"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published