Giter VIP home page Giter VIP logo

gulp-html-postcss's Introduction

gulp-html-postcss

NPM version Build Status Coverage Status

PostCSS gulp plugin with support for HTML and HTML-like:

Install

$ npm install --save-dev gulp-html-postcss

Install required postcss plugins separately. E.g. for autoprefixer, you need to install autoprefixer package.

Basic usage

The configuration is loaded automatically from postcss.config.js as described here, so you don't have to specify any options.

const postcss = require('gulp-html-postcss');
const gulp = require('gulp');

gulp.task('css', () => (
    gulp.src('./src/*.html')
        .pipe(postcss())
        .pipe(gulp.dest('./dest'))
));

Advanced usage

You can pass config as an {Object} as described here,

If you want to configure postcss on per-file-basis, you can pass a callback that receives ctx with the context options and the vinyl file. Described here,

const gulp = require('gulp');
const postcss = require('gulp-postcss');
const reporter = require('gulp-reporter');
const autoprefixer = require('autoprefixer');
const cssnano = require('cssnano');
const sugarss = require('sugarss');

gulp.task('css', () => {
    const callback = (ctx) => ({
        // Configure parser on per-file-basis.
        parser: ctx.file.extname === '.sss' ? 'sugarss' : false,
        // Plugins can be loaded in either using an {Object} or an {Array}.
        plugins: [
            autoprefixer,
            cssnano
        ]
    });

    return gulp.src('./src/*.html', {
        // Source map support
        sourcemaps: true
    })
        .pipe(postcss(callback))
        // Message repport support
        .pipe(reporter())
        .pipe(gulp.dest('./dest'));
});

gulp-html-postcss's People

Contributors

ai avatar danielhusar avatar glenselle avatar gucong3000 avatar jorrit avatar josefjezek avatar michael-ciniawsky avatar moox avatar ohbarye avatar silvenon avatar termina1 avatar trysound avatar w0rm avatar wesbos avatar zemd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

zemd jaichandra

gulp-html-postcss's Issues

CSS error handling bug

Hi,

When the CSS parser encounters a syntax error, gulp-html-postcss throws an unmeaningful exception:

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: no writecb in Transform class
    at afterTransform (_stream_transform.js:70:33)
    at TransformState.afterTransform (_stream_transform.js:54:12)
    at Immediate._onImmediate (CENSORED_ROOT/node_modules/gulp-html-postcss/index.js:82:11)
    at processImmediate [as _immediateCallback] (timers.js:383:17)

If I insert console.log(error); inside the plugin's handleError function, the error is revealed:

{ [Error: CENSORED_ROOT/webapp/themes/default-theme/theme.html:4:3: Failed to find 'components/pagexxx' from CENSORED_ROOT

My guess is that the cb function is called twice (by both handleError and cb(null, file) at the end of the _transform method), and node throws that generic error instead of the captured one.

Encountered this problem on both Windows/Linux and NodeJS versions 5.0.0 and 4.3.2.
Using the latest release of this plugin (6.0.1).

Can not install from git

When install gulp-postcss from git, it will fail.

npm i postcss/gulp-postcss

There is no any js file in node_modules/gulp-postcss

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.