grunt-bower-link-snapshot

0.0.1 • Public • Published

grunt-bower-link-snapshot

Grunt Task: tag linked bower components into bower.json for build servers

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-link-snapshot --save-dev

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

grunt.loadNpmTasks('grunt-bower-link-snapshot');

The "bower_link_snapshot" task

Project Setup

When developing bower components for use across multiple projects, it is common to use 'bower link' to symlink a dev copy. http://bower.io/docs/api/#link

The problem comes when uploading your package to a build server, your working copy is ahead of the copy which will be used to build the project.

This solution

  • Ensure the latest changes to the bower component are committed (if not, throws)
  • Ensure the latest commit has a tag (if not, bumps a minor version)
  • Update the project's bower.json to reflect the concrete tagged versions.

It does not

  • commit or push changes
  • 'bower unlink' the component - you keep the symlinked version for dev

Issues

  • Should check if the bower components are linked or installed - noop on installed
  • Should accept CLI parameters for the version bump
  • Uses the CLI tools for grunt and bower.
  • Manually re-writes the bower.json file, should use the bower js code.
  • No tests, no build step, CS and JS committed together

Ideas for configurable extensions

  • git push --tags after bumping

This really only works on your dev machine, don't include it in a tool-chain on a build server.

Overview

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

grunt.initConfig({
  bower_link_snapshot: {
    options: {
      packages: ["package_a", "package_b"] 
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
});

Package Sidebar

Install

npm i grunt-bower-link-snapshot

Weekly Downloads

1

Version

0.0.1

License

none

Last publish

Collaborators

  • daemonl