Skip to content

Commit

Permalink
feat(critical-css): Added critical css support
Browse files Browse the repository at this point in the history
Added the task critical css to be able to run from any theme
  • Loading branch information
joaogarin committed Sep 21, 2016
1 parent 417948d commit 77e3ae1
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 10 deletions.
1 change: 1 addition & 0 deletions bin/recruiter-epiq-deps.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ switch (script) {
case 'build':
case 'images':
case 'styleguide':
case 'critical':
var result = spawn.sync(
'node',
[require.resolve('../scripts/' + script)].concat(args),
Expand Down
20 changes: 11 additions & 9 deletions gulpfile.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -116,13 +116,15 @@ gulp.task 'full-build', [
gulp.task 'minify-css', ->
cssmin = require('gulp-cssmin')
rename = require('gulp-rename')
gulp.src('dist/css/*.css').pipe(cssmin()).pipe(rename(
suffix: '.min')).pipe gulp.dest('dist/css/min')
gulp.src('../../dist/css/*.css').pipe(cssmin()).pipe(rename(
suffix: '.min')).pipe gulp.dest('../../dist/css/min')
return

gulp.task 'critical-front', (cb) ->
# URLs for criticalCSS
gulpconfig = require("./gulpconfig.json");
util = require ('gulp-util')

gulpconfig = require(util.env.gulpconfig);
urls =
site: gulpconfig.urls.site
css: gulpconfig.urls.css
Expand All @@ -131,7 +133,6 @@ gulp.task 'critical-front', (cb) ->
front_force_selectors = gulpconfig.front.force_include

request = require('request')
util = require ('gulp-util')
replace = require('gulp-replace-path')
path = require('path')
criticalcss = require('criticalcss')
Expand All @@ -140,7 +141,7 @@ gulp.task 'critical-front', (cb) ->
siteUrl = if util.env.site then util.env.site else urls.site
cssUrl = if util.env.csspath then util.env.csspath else (siteUrl + urls.css)
cssPath = path.join(tmpDir, 'style.css')
includePath = path.join(__dirname, 'dist/css/critical-front.css')
includePath = path.join(__dirname, '../../dist/css/critical-front.css')
request(cssUrl).pipe(fs.createWriteStream(cssPath)).on 'close', ->
criticalcss.getRules cssPath, {buffer: 2000 * 1024}, (err, output) ->
if err
Expand All @@ -158,14 +159,16 @@ gulp.task 'critical-front', (cb) ->
fs.writeFile includePath, output, (err) ->
gulp.src([includePath])
.pipe(replace('../images', urls.theme_folder + "dist/images"))
.pipe gulp.dest('dist/css')
.pipe gulp.dest('../../dist/css')
return
return
return

gulp.task 'critical', ->
# URLs for criticalCSS
gulpconfig = require("./gulpconfig.json");
util = require ('gulp-util')

gulpconfig = require(util.env.gulpconfig);
urls =
site: gulpconfig.urls.site
css: gulpconfig.urls.css
Expand All @@ -174,15 +177,14 @@ gulp.task 'critical', ->
front_force_selectors = gulpconfig.front.force_include

request = require('request')
util = require ('gulp-util')
path = require('path')
criticalcss = require('criticalcss')
fs = require('fs')
tmpDir = require('os').tmpdir()
siteUrl = if util.env.site then util.env.site else urls.site
cssUrl = if util.env.csspath then util.env.csspath else (siteUrl + urls.css)
cssPath = path.join(tmpDir, 'style.css')
includePath = path.join(__dirname, 'dist/css/critical.css')
includePath = path.join(__dirname, '../../dist/css/critical.css')
request(cssUrl).pipe(fs.createWriteStream(cssPath)).on 'close', ->
criticalcss.getRules cssPath, {buffer: 2000 * 1024}, (err, output) ->
if err
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
{
"name": "recruiter_epiq_deps",
"version": "0.0.12",
"version": "0.0.13",
"description": "Dependencies for the epiq theme in Recruiter distro",
"main": "index.js",
"scripts": {
"commit": "git-cz",
"prepublish": "bundle-deps",
"build": "node scripts/build.js",
"images": "node scripts/images.js",
"critial": "node scripts/critial.js",
"styleguide": "node scripts/styleguide.js"
},
"repository": {
Expand Down
19 changes: 19 additions & 0 deletions scripts/critical.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
var exec = require('child_process').exec,
epiq_dir = '../../../../../../profiles/recruiter/themes/epiq',
gulpconfig = '../../gulpconfig.json',
args = "";

var yargs = require('yargs').argv;
if (yargs.site) {
args = '--site' + yargs.site;
}
if (yargs.csspath) {
args = '--csspath' + yargs.csspath;
}

var cmd = 'cd node_modules/recruiter_epiq_deps && gulp critical-css --epiq_dir ' + epiq_dir + ' --gulpconfig ' + gulpconfig + ' ' + args;

exec(cmd, function (error, stdout, stderr) {
// command output is in stdout
console.log(stdout);
});

0 comments on commit 77e3ae1

Please sign in to comment.