node package manager

forget-me-not

npm/grunt pre-release dependency check

forget-me-not

npm/bower pre-release dependency check

Do you like npm link and bower link for development but keep forgetting to update your libraries when you make a release?

forget-me-not is a Grunt task that will prevent you from making a release when you've still got development libraries symlinked into your project.

By default forget-me-not will scan your npm (node_modules) and Bower (bower_components) directories for development dependencies. If it finds any symlinks then forget-me-not will fail the task and list out the offending items.

You can add extra directories to scan with the dirs config option.

If you've customised your Bower components directory with a .bowerrc file then forget-me-not will automatically scan your custom directory - no extra configuration needed :)

$ npm install forget-me-not --save-dev

These are the default options - all properties are optional.

  options: {
    npm: true,    // Scan the npm node_modules directory. 
    bower: true,  // Scan the Bower components directory. 
    dirs: ['path_to_scan'], // [optional] Extra paths to scan. 
    onError: 'warn'   // How to handle errors (i.e. linked dependencies): 'warn', 'log'. 
  }

Grunt:

// gruntfile 
{
  ...
  'forget-me-not': {
    options: {
      npm: false,   // Check node_modules 
      bower: false, // Check configured bower directory 
      dirs: ['path_to_scan'], // Extra directories to scan 
      onError: 'error' // 'error' | 'warn' what to do when symlinks are found 
    },
    snapshot: {
      // Override default options if needed: 
      options: {
        npm: false,
        bower: false,
        dirs: ['path_to_scan'],
        onError: 'warn'
      }
    }
  }
  ...
  
  grunt.loadNpmTasks('forget-me-not');
}
# Check for symlinks with default options
$ grunt forget-me-not
 
# Shorter task alias
$ grunt fmn
 
# Just log out instead of erroring
$ grunt fmn --fmn-log
 
# Get the options from the 'forget-me-not.snapshot' config path 
$ grunt fmn:shapshot
 
 
Running "forget-me-not" task
>> Scanned "node_modules": 33 children (2 symlinked)
>> Invalid dirs: [
>>      my-dev-library,
>>      wiwo-grunt-lib
>> ]
>> Scanned "bower_components": 20 children (1 symlinked)
>> Invalid dirs: [
>>      wiwo-lib
>> ]
Fatal error: Found linked dependencies or error.
 
$ grunt fmn
Running "forget-me-not" task
>> No development links found.