sindresorhus/awesome-nodejs — pull request #206 by patrick-steele-idem (2014-10-31 19:50:25+00:00)
Title: Added 'optimizer' under 'Build tools'

# Links

- Github: https://github.com/raptorjs/optimizer
- npm: https://www.npmjs.org/package/optimizer

# Why?

The [optimizer](https://github.com/raptorjs/optimizer) provides a simple and powerful solution for building optimized web applications. It is a JavaScript module bundler (like Browserify and Webpback) that also offers first-level support for the optimized delivery of vanilla JS, CSS, images, fonts and other front-end assets to the browser. eBay relies heavily on this tool for delivering optimized webpages for our Node.js stack so it is heavily tested and documented and very actively maintained.

It offers many different optimizations:

- JavaScript/CSS minification
- _Conditional_ dependencies
- Async loading
- Image compression
- Automatic code splitting for code shared across pages
- Fingerprinted resource URLs
- CDN URL generation
- Custom output transforms
- URL resolving inside CSS files
- etc.

It also has the following features:

- Simple interfaces: CLI, JavaScript API and taglib (for [Marko](https://github.com/raptorjs/marko) and Dust)
- Fast incremental builds
- Supports both runtime and build-time optimization
- Declarative dependencies and inspected dependencies
- Generation of `` and `` tags
- Line numbers are maintained for transported CommonJS modules (no need for source maps)
- Gulp integration: [gulp-optimizer](https://github.com/raptorjs/gulp-optimizer)
- Easily switch between development and production mode
- Plugins to support various CSS pre-processors, template compilers and transforms:
* [optimizer-require](https://github.com/raptorjs/optimizer-require): Node.js-style require for the browser (similar to [browserify](https://github.com/substack/node-browserify))
* [optimizer-minify-css](https://github.com/raptorjs/optimizer-less): Minify CSS files using [sqwish](https://github.com/ded/sqwish)
* [optimizer-minify-js](https://github.com/raptorjs/optimizer-minify-js): Minify JavaScript files using [uglify-js](https://www.npmjs.org/package/uglify-js)
* [optimizer-resolve-css-urls](https://github.com/raptorjs/optimizer-resolve-css-urls): Replace each resource URL in a CSS file with an optimized resource URL
* [optimizer-dust](https://github.com/raptorjs/optimizer-dust): Compile [Dust](https://github.com/linkedin/dustjs) template files to JavaScript
* [optimizer-handlebars](https://github.com/raptorjs/optimizer-handlebars): Compile [Handlebars](http://handlebarsjs.com/) template files to JavaScript
* [optimizer-image](https://github.com/raptorjs/optimizer-image): Get image info (including URL, width and height) for any image on both the server and client
* [optimizer-imagemin](https://github.com/raptorjs/optimizer-imagemin): Minify GIF, PNG, JPG and SVG images during optimization
* [optimizer-jade](https://github.com/raptorjs/optimizer-jade): Compile [Jade](http://jade-lang.com/) templates to JavaScript
* [optimizer-jsx](https://github.com/raptorjs/optimizer-jsx): Compile [JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) files to JavaScript
* [optimizer-less](https://github.com/raptorjs/optimizer-less): Compile [Less](http://lesscss.org/) files to CSS
* [optimizer-lodash](https://github.com/raptorjs/optimizer-lodash): Compile [Lo-Dash](https://lodash.com/) files to JavaScript
* [optimizer-marko](https://github.com/raptorjs/optimizer-require): Compile [Marko template](https://github.com/raptorjs/marko) files to JavaScript
* [optimizer-sass](https://github.com/raptorjs/optimizer-sass): Compile [Sass](https://github.com/sass/node-sass) files to CSS
* [optimizer-stylus](https://github.com/raptorjs/optimizer-stylus): Compile [Stylus](http://learnboost.github.io/stylus/) files to CSS
* etc.

Also, this tools supports many of the features of Browserify (browserify shims, browserify transforms, etc.), so it is an easy transition.

Thanks for your consideration and thanks for maintaining this list!