Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hojberg/grunt-yui-config
Generate YUI config dependency chart with Grunt
https://github.com/hojberg/grunt-yui-config
Last synced: 20 days ago
JSON representation
Generate YUI config dependency chart with Grunt
- Host: GitHub
- URL: https://github.com/hojberg/grunt-yui-config
- Owner: hojberg
- License: mit
- Created: 2013-01-28T19:40:48.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2014-08-26T20:24:51.000Z (over 10 years ago)
- Last Synced: 2024-10-16T04:43:03.721Z (2 months ago)
- Language: JavaScript
- Homepage:
- Size: 324 KB
- Stars: 4
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
grunt-yui-config
====================Generates a YUI config with Grunt.
Specifically expands file paths to module definitions with
module name, fullpath and requires.## Install
```
npm install grunt-yui-config --save-dev
```## Configuration Example
```javascript
grunt.initConfig({
yuiConfig: {
hojberg: {
options: {
dest: 'yui_config.js',
comboBase: 'my/base/path',
groups: {
myGroup: {
comboBase: 'my/other/path',
modules: ['path/to/my/modules/**/*.js'],
processPath: function (p) {
return p.replace('path', 'public');
},
excludeFiles: ['path/to/exclude/**/*.js']
}
}
}
}
}
});
```Anything you pass to this will be added to the config,
except `dest`, `excludeFiles` and `processPath` which will be removed
as the config is being generated.## dest
Give the `dest` option to provide the output file of the YUI config.## template
Give the `template` option with a path to a template file used to generate the
YUI config. The `groups` variable is passed to the template.Example of a template file:
```javascript
YUI.applyConfig({
groups:{
"myGroup":{
comboBase: "super/<%= groups['myGroup'].hash %>/path",
modules: {
<% groups['myGroup'].modules.forEach(function (module, i) { %>
"<%= module.name %>": {
requires: <%= JSON.stringify(module.requires) %>,
path: "<%= module.path %>"
}<% if (i !== (groups['myGroup'].modules.length - 1)) { %>,<% } %>
<% }); %>
}
}
}
});
```## allowModuleOverwrite
Provide the boolean `allowModuleOverwrite`
if you have multiple modules with the same name and the
last one should win. Default is `false`.## processPath
Provide the `processPath` function to modify the path of the module.
This is useful because Grunt sees the module paths relative to the Gruntfile
itself.## processName
Provide the `processName` function to modify the generated name of the module.
This is useful when you need to add non YUI modules to your config. By default,
the path to the module is intelligently parsed from the result of `processedPath`,
but sometimes, you might want your `processPath` to add a `-min` suffix to the
generated files. This allows you to return the name of the module so that it does
not have the `-min`.## excludeFiles
use the `excludeFiles` options to exclude any non YUI modules from to build
the config from.## `{{hash}}` in `comboBase`
Provide `{{hash}}` in your comboBase string and it will be interpolated with
a sha of the contents of the files in the associated `group`. This is useful
for providing a fully cachable url.