[Build] Switch compass to bourbon

Change mixin library to bourbon.  Significantly reduces sass build time.

https://github.com/nasa/openmctweb/issues/698
This commit is contained in:
Pete Richards
2016-02-22 18:02:16 -08:00
parent 87934df0d5
commit 0a71835687
48 changed files with 176 additions and 370 deletions

View File

@ -24,7 +24,9 @@
var gulp = require('gulp'),
requirejsOptimize = require('gulp-requirejs-optimize'),
sourcemaps = require('gulp-sourcemaps'),
compass = require('gulp-compass'),
rename = require('gulp-rename'),
sass = require('gulp-sass'),
neat = require('node-neat'),
jshint = require('gulp-jshint'),
jscs = require('gulp-jscs'),
replace = require('gulp-replace-task'),
@ -38,7 +40,7 @@ var gulp = require('gulp'),
main: 'main.js',
dist: 'dist',
assets: 'dist/assets',
scss: 'platform/**/*.scss',
scss: ['./platform/**/*.scss', './example/**/*.scss'],
scripts: [ 'main.js', 'platform/**/*.js', 'src/**/*.js' ],
static: [
'index.html',
@ -57,10 +59,8 @@ var gulp = require('gulp'),
configFile: path.resolve(__dirname, 'karma.conf.js'),
singleRun: true
},
compass: {
sass: __dirname,
css: paths.assets,
sourcemap: true
sass: {
includePaths: neat.includePaths
},
replace: {
variables: {
@ -70,40 +70,7 @@ var gulp = require('gulp'),
branch: fs.existsSync('.git') ? git.branch() : 'Unknown'
}
}
},
stream = require('stream');
/**
* Returns a transform stream that allows us to customize the destination
* paths for individual sass files. Wraps compass.
*/
function customCompass() {
var compassWrapper = new stream.Transform({objectMode: true});
compassWrapper._transform = function (chunk, encoding, done) {
if (/\/_[^\/]*.scss$/.test(chunk.path)) {
return done();
}
var baseDir = 'platform/' + chunk.relative.replace(/sass\/.*$/, ''),
options = {
project: __dirname,
sass: baseDir + 'sass/',
css: baseDir + 'css/',
comments: true,
bundle_exec: true
};
compass(options)
.on('data', function (file) {
this.push(file);
}.bind(this))
.on('error', done)
.on('end', done)
.end(chunk);
};
return compassWrapper;
}
gulp.task('scripts', function () {
return gulp.src(paths.main)
@ -111,18 +78,21 @@ gulp.task('scripts', function () {
.pipe(requirejsOptimize(options.requirejsOptimize))
.pipe(sourcemaps.write('.'))
.pipe(replace(options.replace))
.pipe(gulp.dest(paths.dist));
.pipe(gulp.dest(paths));
});
gulp.task('test', function (done) {
new karma.Server(options.karma, done).start();
});
gulp.task('compass');
gulp.task('stylesheets', function () {
return gulp.src(paths.scss)
.pipe(customCompass());
return gulp.src(paths.scss, {base: '.'})
.pipe(sass(options.sass))
.pipe(rename(function (file) {
file.dirname = file.dirname.replace('/sass', '/css');
return file;
}))
.pipe(gulp.dest(__dirname));
});
gulp.task('lint', function () {