mirror of
https://github.com/hanzoai/postcss.git
synced 2026-09-24 17:01:56 +00:00
Add preprocessors benchmark
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
*~
|
||||
|
||||
node_modules/
|
||||
.bundle/
|
||||
|
||||
benchmark/results/
|
||||
benchmark/cache/
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem 'sass'
|
||||
@@ -0,0 +1,10 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
sass (3.4.8)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
sass
|
||||
@@ -0,0 +1,66 @@
|
||||
var fs = require('fs');
|
||||
var exec = require('child_process').exec;
|
||||
|
||||
var path = __dirname + '/cache/bootstrap.css';
|
||||
var css = fs.readFileSync(path).toString();
|
||||
|
||||
css = css.replace(/\s+filter:[^;\}]+;?/g, '');
|
||||
css = css.replace('/*# sourceMappingURL=bootstrap.css.map */', '');
|
||||
var scss = __dirname + '/cache/bootstrap.scss';
|
||||
fs.writeFileSync(scss, css);
|
||||
|
||||
var postcss = require('../build');
|
||||
var stylus = require('stylus');
|
||||
var sass = require('node-sass');
|
||||
var less = require('less');
|
||||
|
||||
module.exports = {
|
||||
name: 'Bootstrap',
|
||||
maxTime: 15,
|
||||
tests: [
|
||||
{
|
||||
name: 'PostCSS',
|
||||
fn: function (done) {
|
||||
return postcss().process(css, { map: false }).css;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'Stylus',
|
||||
defer: true,
|
||||
fn: function (done) {
|
||||
stylus.render(css, { filename: path }, function (err, css) {
|
||||
if ( err ) throw err;
|
||||
done.resolve();
|
||||
});
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'Less',
|
||||
defer: true,
|
||||
fn: function (done) {
|
||||
less.render(css, function (err, css) {
|
||||
if ( err ) throw err;
|
||||
done.resolve();
|
||||
});
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'libsass',
|
||||
fn: function () {
|
||||
return sass.renderSync({ data: css });
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'Ruby Sass',
|
||||
defer: true,
|
||||
fn: function (done) {
|
||||
var command = 'sass -C --sourcemap=none ' + scss;
|
||||
exec('cd ' + __dirname + '; bundle exec ' + command,
|
||||
function (error, stdout, stderr) {
|
||||
if ( error ) throw stderr;
|
||||
done.resolve();
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
+9
-1
@@ -95,10 +95,18 @@ gulp.task('bench:bootstrap', function (done) {
|
||||
});
|
||||
});
|
||||
|
||||
gulp.task('bench:processors', ['build', 'bench:bootstrap'], function () {
|
||||
var bench = require('gulp-bench');
|
||||
var summary = require('gulp-bench-summary');
|
||||
return gulp.src('./benchmark/processors.js', { read: false })
|
||||
.pipe(bench())
|
||||
.pipe(summary('PostCSS'));
|
||||
});
|
||||
|
||||
gulp.task('bench', ['build', 'bench:bootstrap'], function () {
|
||||
var bench = require('gulp-bench');
|
||||
var summary = require('gulp-bench-summary');
|
||||
return gulp.src('./benchmark/general.js', { read: false })
|
||||
return gulp.src('./benchmark/parsers.js', { read: false })
|
||||
.pipe(bench())
|
||||
.pipe(summary('PostCSS'));
|
||||
});
|
||||
|
||||
+5
-2
@@ -12,7 +12,7 @@
|
||||
"dependencies": {
|
||||
"source-map": "~0.1.40",
|
||||
"js-base64": "~2.1.5",
|
||||
"6to5": "1.12.26"
|
||||
"6to5": "1.13.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"concat-with-sourcemaps": "0.1.6",
|
||||
@@ -25,6 +25,7 @@
|
||||
"gulp-mocha": "2.0.0",
|
||||
"gulp-util": "3.0.1",
|
||||
"gulp-6to5": "1.0.2",
|
||||
"node-sass": "1.2.3",
|
||||
"execSync": "1.0.2",
|
||||
"fs-extra": "0.12.0",
|
||||
"gonzales": "1.0.7",
|
||||
@@ -34,9 +35,11 @@
|
||||
"rework": "1.0.1",
|
||||
"should": "4.3.0",
|
||||
"mensch": "0.3.1",
|
||||
"stylus": "0.49.3",
|
||||
"mocha": "2.0.1",
|
||||
"cssom": "0.3.0",
|
||||
"gulp": "3.8.10"
|
||||
"gulp": "3.8.10",
|
||||
"less": "2.1.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "gulp"
|
||||
|
||||
Reference in New Issue
Block a user