node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

grunt-bower-map

grunt-bower-map

Copy bower component files.

Getting Started

This plugin requires Grunt ~0.4.5

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-bower-map --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-bower-map');

The "bower_map" task

Overview

In your project's Gruntfile, add a section named 'bower-map' to the data object passed into grunt.initConfig().

grunt.initConfig({
   'bower-map': {
       default: {
           options: {
                dest: 'lib',
           }
       }
   }
});

Options

dest (required)

Type: String Default value: undefined

The default base path into which components are copied.

bowerPath

Type: String Default value: 'bower_components'

Path to the Bower install directory.

ignore

Type: Array Default value: []

An array of bower component names to ignore.

maintainCommonPaths

Type: Boolean Default value: false

When set to false (the default value) unmapped files are copied relative to their highest-level common directory, otherwise files are copied based on path to component root.

map

Type: Object Default value: undefined

An object used to remap component file destinations. Map values can rename or put component files in a location other than the default libPath

  <file-path>: <new-file-path>
  <directory>: <new-directory>
  <component>:{
       <relative-file-path>: <new-file-path>
       <relative-directory>: <new-directory>
  }

shim

Type: Object Default value: undefined

An object used to specify or replace the value of 'main' defined in bower.json or package.json for the specified keys (component names).

useNamespace

Type: Boolean|undefined Default value: undefined

If true, all files are namespaced in destination using package name. If false, all files use the destination as a base folder. If undefined, only packages more than one file (per sub-task) are written to namespaced directories.

Usage Examples

Default Options

In this example all bower components with a bower.json file that have a main attribute will be copied to assets/lib/[component_name]/*

grunt.initConfig({
  'bower-map': {
    dest: 'assets/lib/',
  },
});

Custom Options

grunt.initConfig({
        'bower-map': {
            options:{
                bowerPath: "bower_components",
                useNamespace: false,
                ignore: ["ignore-package"],
                shim:{
                    q: "q.js"
                }
            },
            css: {
                options:{
                    dest: "lib/css",
                    extensions:['css']
                }
            },
            js: {
                options:{
                    dest: "lib/js",
                    extensions:['js']
                }
            },
            less: {
                options:{
                    dest: "lib/less",
                    extensions:['less']
                }
            },
            fonts: {
                options:{
                    dest: "lib/fonts",
                    extensions:['ttf','woff','eot','svg']
                }
            }
 
        }
});

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

0.1.0