I have problems to apply postcss-middleware after the sass-middleware in an API in express, the Sass middleware is applied but not the postcsss middleware.
import autoprefixer from 'autoprefixer';
import express from 'express';
import pug from 'pug';
import favicon from 'serve-favicon';
import sassMiddleware from 'node-sass-middleware';
import routes from './src/app/routes';
import postcssMiddleware from 'postcss-middleware';
const env = 'development',
port = process.env.PORT || 3000,
publicDir = '${__dirname}/public',
viewDir = '${__dirname}/src/views',
faviconDir = '${__dirname}/public/img/favicon.png',
app = express();
app
.set( 'views', viewDir )
.set( 'view engine', 'pug' )
.set( 'port', port )
.set( 'env', env )
.use( sassMiddleware( {
src : '${__dirname}/src/scss',
dest : '${publicDir}/css',
debug : false,
outputStyle : 'expanded'
}))
.use( '/css', postcssMiddleware( {
src : function ( req ) {
return path.join( publicDir, 'css', req.path );
},
plugins : [
autoprefixer( {
browsers : 'last 2 versions'
} )
]
} ) )
.use( express.static( '${publicDir}/css' ) )
.use( express.static( '${publicDir}/js' ) )
.use( favicon( faviconDir ) )
.use( routes );
if ( app.get( 'env' ) === 'production' ) {
app.use( ( req, res, next ) => {
let err = new Error( 'Not Found' );
err.status = 404;
next( err );
} );
app.use( ( err, req, res ) => {
res.status( err.status || 500 );
res.render( 'error', { err : err } );
} );
}
export default app;