Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including grunt-yui-config with all npm packages installed. Try it out:

grunt-yui-config lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("grunt-yui-config/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

grunt-yui-config v0.4.3


Generates a YUI config with Grunt. Specifically expands file paths to module definitions with module name, fullpath and requires.


npm install grunt-yui-config --save-dev

Configuration Example

  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.


Give the dest option to provide the output file of the YUI config.


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:

      comboBase: "super/<%= groups['myGroup'].hash %>/path",
      modules: {
        <% groups['myGroup'].modules.forEach(function (module, i) { %>
        "<%= %>": {
          requires: <%= JSON.stringify(module.requires) %>,
          path: "<%= module.path %>"
        }<% if (i !== (groups['myGroup'].modules.length - 1)) { %>,<% } %>
        <% }); %>


Provide the boolean allowModuleOverwrite if you have multiple modules with the same name and the last one should win. Default is false.


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.


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.


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.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free