added examples

This commit is contained in:
Tobias Koppers 2012-03-27 00:00:51 +02:00
parent a29a823305
commit e133dbdf73
11 changed files with 379 additions and 0 deletions

View File

@ -0,0 +1,146 @@
# example.js
``` javascript
console.log(require("./cup1.coffee"));
```
# cup1.coffee
``` coffee-script
module.exports =
cool: "stuff"
answer: 42
external: require "./cup2.coffee"
again: require "./cup2.coffee"
```
# cup2.coffee
``` coffee-script
console.log "yeah coffee-script"
module.exports = 42
```
# js/output.js
``` javascript
/******/(function(modules) {
/******/ var installedModules = {};
/******/ function require(moduleId) {
/******/ if(typeof moduleId !== "number") throw new Error("Cannot find module '"+moduleId+"'");
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ var module = installedModules[moduleId] = {
/******/ exports: {}
/******/ };
/******/ modules[moduleId](module, module.exports, require);
/******/ return module.exports;
/******/ }
/******/ require.ensure = function(chunkId, callback) {
/******/ callback(require);
/******/ };
/******/ return require(0);
/******/})
/******/({
/******/0: function(module, exports, require) {
require(/* __webpack_console */1).log(require(/* ./cup1.coffee */2));
/******/},
/******/
/******/1: function(module, exports, require) {
var console = window.console;
exports.log = (console && console.log) || function() {};
exports.info = (console && console.info) || function() {};
exports.error = (console && console.error) || function() {};
exports.warn = (console && console.warn) || function() {};
exports.dir = (console && console.dir) || function() {};
exports.time = (console && console.time) || function(label) {
times[label] = Date.now();
};
exports.timeEnd = (console && console.timeEnd) || function() {
var duration = Date.now() - times[label];
exports.log('%s: %dms', label, duration);
};
exports.trace = (console && console.trace) || function() {};
exports.assert = (console && console.assert) || function() {};
/******/},
/******/
/******/2: function(module, exports, require) {
(function() {
module.exports = {
cool: "stuff",
answer: 42,
external: require(/* ./cup2.coffee */3),
again: require(/* ./cup2.coffee */3)
};
}).call(this);
/******/},
/******/
/******/3: function(module, exports, require) {
(function() {
require(/* __webpack_console */1).log("yeah coffee-script");
module.exports = 42;
}).call(this);
/******/},
/******/
/******/})
```
# Info
## Uncompressed
```
Chunks: 1
Modules: 4
Modules including duplicates: 4
Modules pre chunk: 4
Modules first chunk: 4
output.js: 2002 characters
output.js
0 [...]\examples\coffee-script\example.js
main
1 [...]\buildin\__webpack_console.js
require (1x) from [...]\examples\coffee-script\example.js
require (1x) from [...]\examples\coffee-script\cup2.coffee
2 [...]\node_modules\coffee-loader.js![...]\examples\coffee-script\cup1.coffee
require (1x) from [...]\examples\coffee-script\example.js
3 [...]\node_modules\coffee-loader.js![...]\examples\coffee-script\cup2.coffee
require (2x) from [...]\examples\coffee-script\cup1.coffee
```
## Minimized (uglify-js, no zip)
```
Chunks: 1
Modules: 4
Modules including duplicates: 4
Modules pre chunk: 4
Modules first chunk: 4
output.js: 868 characters
output.js
0 [...]\examples\coffee-script\example.js
main
1 [...]\buildin\__webpack_console.js
require (1x) from [...]\examples\coffee-script\example.js
require (1x) from [...]\examples\coffee-script\cup2.coffee
2 [...]\node_modules\coffee-loader.js![...]\examples\coffee-script\cup1.coffee
require (1x) from [...]\examples\coffee-script\example.js
3 [...]\node_modules\coffee-loader.js![...]\examples\coffee-script\cup2.coffee
require (2x) from [...]\examples\coffee-script\cup1.coffee
```

View File

@ -0,0 +1,18 @@
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var cp = require('child_process');
var argv = process.argv;
argv.shift();
argv.shift();
var extraArgs = argv.join(" ");
cp.exec("node ../../bin/webpack.js "+extraArgs+" example.js js/output.js", function (error, stdout, stderr) {
console.log('stdout:\n' + stdout);
console.log('stderr:\n ' + stderr);
if (error !== null) {
console.log('error: ' + error);
}
});

View File

@ -0,0 +1,5 @@
module.exports =
cool: "stuff"
answer: 42
external: require "./cup2.coffee"
again: require "./cup2.coffee"

View File

@ -0,0 +1,3 @@
console.log "yeah coffee-script"
module.exports = 42

View File

@ -0,0 +1 @@
console.log(require("./cup1.coffee"));

155
examples/loader/README.md Normal file
View File

@ -0,0 +1,155 @@
# example.js
``` javascript
// Polyfill require for node.js usage of loaders
require = require("../../require-polyfill")(require.valueOf());
// use our loader
console.dir(require("./loader!./file"));
// use buildin json loader
console.dir(require("./test.json")); // default by extension
console.dir(require("json!./test.json")); // manual
```
# file.js
``` javascript
exports.foo = "bar";
```
# loader.js
``` javascript
module.exports = function(contents, options, callback) {
if(contents.length !== 1)
throw new Error("loader takes exactly one file as parameter");
if(callback) {
// compile for web
callback(null /* no error */,
"exports.answer = 42;\n" +
contents[0]);
} else {
// execute for node.js
var Module = require("module");
var m = new Module(options.request);
m.exports.answer = 42;
m._compile(contents[0], options.filename);
return m.exports;
}
}
```
# test.json
``` javascript
{
"foobar": 1234
}
```
# js/output.js
``` javascript
/******/(function(modules) {
/******/ var installedModules = {};
/******/ function require(moduleId) {
/******/ if(typeof moduleId !== "number") throw new Error("Cannot find module '"+moduleId+"'");
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ var module = installedModules[moduleId] = {
/******/ exports: {}
/******/ };
/******/ modules[moduleId](module, module.exports, require);
/******/ return module.exports;
/******/ }
/******/ require.ensure = function(chunkId, callback) {
/******/ callback(require);
/******/ };
/******/ return require(0);
/******/})
/******/({
/******/0: function(module, exports, require) {
// Polyfill require for node.js usage of loaders
require = require(/* ../../require-polyfill */3)(require.valueOf());
// use our loader
require(/* __webpack_console */1).dir(require(/* ./loader!./file */2));
// use buildin json loader
require(/* __webpack_console */1).dir(require(/* ./test.json */4)); // default by extension
require(/* __webpack_console */1).dir(require(/* json!./test.json */4)); // manual
/******/},
/******/
/******/1: function(module, exports, require) {
var console = window.console;
exports.log = (console && console.log) || function() {};
exports.info = (console && console.info) || function() {};
exports.error = (console && console.error) || function() {};
exports.warn = (console && console.warn) || function() {};
exports.dir = (console && console.dir) || function() {};
exports.time = (console && console.time) || function(label) {
times[label] = Date.now();
};
exports.timeEnd = (console && console.timeEnd) || function() {
var duration = Date.now() - times[label];
exports.log('%s: %dms', label, duration);
};
exports.trace = (console && console.trace) || function() {};
exports.assert = (console && console.assert) || function() {};
/******/},
/******/
/******/2: function(module, exports, require) {
exports.answer = 42;
exports.foo = "bar";
/******/},
/******/
/******/3: function(module, exports, require) {
// No polyfill needed when compiled with webpack
module.exports = function(r){return r}
/******/},
/******/
/******/4: function(module, exports, require) {
module.exports = {"foobar":1234}
/******/},
/******/
/******/})
```
# Info
## Uncompressed
```
Chunks: 1
Modules: 5
Modules including duplicates: 5
Modules pre chunk: 5
Modules first chunk: 5
output.js: 2279 characters
output.js
0 [...]\examples\loader\example.js
main
1 [...]\buildin\__webpack_console.js
require (3x) from [...]\examples\loader\example.js
2 [...]\examples\loader\loader.js![...]\examples\loader\file.js
require (1x) from [...]\examples\loader\example.js
3 [...]\require-polyfill.web.js
require (1x) from [...]\examples\loader\example.js
4 [...]\node_modules\json-loader.js![...]\examples\loader\test.json
require (1x) from [...]\examples\loader\example.js
require (1x) from [...]\examples\loader\example.js
```

18
examples/loader/build.js Normal file
View File

@ -0,0 +1,18 @@
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var cp = require('child_process');
var argv = process.argv;
argv.shift();
argv.shift();
var extraArgs = argv.join(" ");
cp.exec("node ../../bin/webpack.js "+extraArgs+" example.js js/output.js", function (error, stdout, stderr) {
console.log('stdout:\n' + stdout);
console.log('stderr:\n ' + stderr);
if (error !== null) {
console.log('error: ' + error);
}
});

View File

@ -0,0 +1,9 @@
// Polyfill require for node.js usage of loaders
require = require("../../require-polyfill")(require.valueOf());
// use our loader
console.dir(require("./loader!./file"));
// use buildin json loader
console.dir(require("./test.json")); // default by extension
console.dir(require("json!./test.json")); // manual

1
examples/loader/file.js Normal file
View File

@ -0,0 +1 @@
exports.foo = "bar";

20
examples/loader/loader.js Normal file
View File

@ -0,0 +1,20 @@
module.exports = function(contents, options, callback) {
if(contents.length !== 1)
throw new Error("loader takes exactly one file as parameter");
if(callback) {
// compile for web
callback(null /* no error */,
"exports.answer = 42;\n" +
contents[0]);
} else {
// execute for node.js
var Module = require("module");
var m = new Module(options.request);
m.exports.answer = 42;
m._compile(contents[0], options.filename);
return m.exports;
}
}

View File

@ -0,0 +1,3 @@
{
"foobar": 1234
}