Coder Social home page Coder Social logo

rookery / webpack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from webpack/webpack

1.0 8.0 0.0 1.02 MB

Packs CommonJs/AMD Modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jade, coffee, css, less, ... and your custom stuff.

Home Page: http://webpack.github.com

License: MIT License

webpack's Introduction

webpack

documentation

Introduction

webpack is a bundler for modules. The main purpose is to bundle javascript files for useage in browser.

TL;DR

  • bundles CommonJs and/or AMD modules. (even combined)
  • can create a single bundle or a bunch of chunks loaded on demand, to reduce initial loading time.
  • dependencies are resolved while compiling, this makes the runtime very small
  • loader can preprocess files while compiling, i. e. coffee-script to javascript

Check the documentation if you want to know more...

Examples

Take a look at the examples folder.

Features

  • loaders are chainable
  • loaders run in node.js and can do a bunch of stuff
  • option to name your file with a hash of the content
  • watch mode
  • plugin system, extend webpack or build a complete different compiler
  • interfaces
  • CLI with arguments
  • CLI with config file, arguments still possible
  • usable as library from node.js
  • usable as grunt plugin
  • browser replacements
  • comes with browser replacements for some node.js modules
  • see also
  • webpack-dev-middleware
  • webpack-dev-server
  • enhanced-resolve and
  • enhanced-require

A small example what's possible

var commonjs = require("./commonjs");
define(["amd-module", "./file"], function(amdModule, file) {
	require(["big-module/big/file"], function(big) {
		// AMD require acts as split point
		// and "big-module/big/file" is only downloaded when requested
		var stuff = require("../my/stuff");
		// dependencies automatically goes in chunk too
	});
});

require("coffee!./cup.coffee");
// The loader syntax allows to proprocess files
// for common stuff you can bind RegExps to loaders
// if you also add ".coffee" to the default extensions
// you can write:
require("./cup");

function loadTemplate(name) {
	return require("./templates/" + name ".jade");
	// dynamic requires are supported
	// while compiling we figure out what can be requested
	// here everything in "./templates" that matches /^.*\.jade$/
	// (can also be in subdirectories)
}

require("imports?_=underscore!../loaders/my-ejs-loader!./template.html");
// you can chain loaders
// you can configure loaders with query parameters
// and loaders resolve similar to modules

// ...you can combine everything
function loadTemplateAsync(name, callback) {
	require(["bundle?lazy!./templates/" + name + ".jade"], function(templateBundle) {
		templateBundle(callback);
	});
}

Tests

You can run the unit tests with npm test. build status

You can run the browser tests:

cd test/browsertests
node build

and open tests.html in browser.

Contribution

You are welcome to contribute by writing issues or pull requests. It would be nice if you open source your own loaders or webmodules. :)

You are also welcome to correct any spelling mistakes or any language issues, because my english is not perfect...

License

Copyright (c) 2012-2013 Tobias Koppers

MIT (http://www.opensource.org/licenses/mit-license.php)

Dependencies

webpack's People

Contributors

rdrey avatar shama avatar sokra avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

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.