149 lines
4.0 KiB
Markdown
149 lines
4.0 KiB
Markdown
# RequireJS plugins
|
|
|
|
Small set of plugins for [RequireJS](http://requirejs.org). Some plugins may
|
|
also work on other AMD loaders (never tested it).
|
|
|
|
For more plugins check [RequireJS Wiki](https://github.com/jrburke/requirejs/wiki/Plugins).
|
|
|
|
|
|
## Install
|
|
|
|
You can use [bower](http://bower.io/) to install it easily:
|
|
|
|
```
|
|
bower install --save requirejs-plugins
|
|
```
|
|
|
|
|
|
|
|
## Plugins
|
|
|
|
- **async** : Useful for JSONP and asynchronous dependencies (e.g. Google Maps).
|
|
- **font** : Load web fonts using the [WebFont Loader API](https://code.google.com/apis/webfonts/docs/webfont_loader.html)
|
|
(requires `propertyParser`)
|
|
- **goog** : Load [Google APIs](http://code.google.com/apis/loader/)
|
|
asynchronously (requires `async!` plugin and `propertyParser`).
|
|
- **image** : Load image files as dependencies. Option to "cache bust".
|
|
- **json** : Load JSON files and parses the result. (Requires `text!` plugin).
|
|
- **mdown** : Load Markdown files and parses into HTML. (Requires `text!`
|
|
plugin and a markdown converter).
|
|
- **noext** : Load scripts without appending ".js" extension, useful for
|
|
dynamic scripts.
|
|
|
|
### Other
|
|
|
|
- **propertyParser** : Just a helper used by some plugins to parse
|
|
arguments (not a real plugin).
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
check the `examples` folder. All the info you probably need will be inside
|
|
comments or on the example code itself.
|
|
|
|
|
|
|
|
## Basic usage
|
|
|
|
Put the plugins inside the `baseUrl` folder (usually same folder as the main.js
|
|
file) or create an alias to the plugin location:
|
|
|
|
```js
|
|
require.config({
|
|
paths : {
|
|
//create alias to plugins (not needed if plugins are on the baseUrl)
|
|
async: 'lib/require/async',
|
|
font: 'lib/require/font',
|
|
goog: 'lib/require/goog',
|
|
image: 'lib/require/image',
|
|
json: 'lib/require/json',
|
|
noext: 'lib/require/noext',
|
|
mdown: 'lib/require/mdown',
|
|
propertyParser : 'lib/require/propertyParser',
|
|
markdownConverter : 'lib/Markdown.Converter'
|
|
}
|
|
});
|
|
|
|
//use plugins as if they were at baseUrl
|
|
define([
|
|
'image!awsum.jpg',
|
|
'json!data/foo.json',
|
|
'noext!js/bar.php',
|
|
'mdown!data/lorem_ipsum.md',
|
|
'async!http://maps.google.com/maps/api/js?sensor=false',
|
|
'goog!visualization,1,packages:[corechart,geochart]',
|
|
'goog!search,1',
|
|
'font!google,families:[Tangerine,Cantarell]'
|
|
], function(awsum, foo, bar, loremIpsum){
|
|
//all dependencies are loaded (including gmaps and other google apis)
|
|
}
|
|
);
|
|
```
|
|
|
|
|
|
## Removing plugin code after build
|
|
|
|
[r.js](https://github.com/jrburke/r.js/blob/master/build/example.build.js)
|
|
nowadays have the `stubModules` setting which can be used to remove the whole
|
|
plugin code:
|
|
|
|
```js
|
|
({
|
|
// will remove whole source code of "json" and "text" plugins during build
|
|
// JSON/text files that are bundled during build will still work fine but
|
|
// you won't be able to load JSON/text files dynamically after build
|
|
stubModules : ['json', 'text']
|
|
})
|
|
```
|
|
|
|
|
|
## Notes about the Markdown plugin
|
|
|
|
The Markdown plugin was created mainly to be used to compile the markdown files
|
|
into HTML during the build step, if you set `pragmasOnSave.excludeMdown=true`
|
|
it will remove the `Markdown.Converter.js` and `mdown.js` files from the build.
|
|
Example build settings:
|
|
|
|
```js
|
|
({
|
|
baseUrl : './',
|
|
pragmasOnSave : {
|
|
excludeMdown : true
|
|
},
|
|
paths : {
|
|
mdown : 'lib/requirejs/mdown',
|
|
text : 'lib/requirejs/text',
|
|
markdownConverter : 'lib/Markdown.Converter'
|
|
},
|
|
modules : {
|
|
name : 'main'
|
|
}
|
|
})
|
|
```
|
|
|
|
If `excludeMdown=true` you won't be able to load markdown files dynamically
|
|
after the build.
|
|
|
|
|
|
|
|
## Writing your own plugins
|
|
|
|
Check [RequireJS documentation](http://requirejs.org/docs/plugins.html) for
|
|
a basic reference and use other plugins as reference. RequireJS official
|
|
plugins are a good source for learning.
|
|
|
|
Also be sure to check [RequireJS Wiki](https://github.com/jrburke/requirejs/wiki/Plugins).
|
|
|
|
|
|
|
|
## Author
|
|
|
|
[Miller Medeiros](http://blog.millermedeiros.com/)
|
|
|
|
|
|
|
|
## License
|
|
|
|
All the plugins are released under the MIT license.
|