Skip to content

Latest commit

 

History

History
41 lines (36 loc) · 1.81 KB

README.md

File metadata and controls

41 lines (36 loc) · 1.81 KB

Grunt Node Modules Cachebuster

This tasks reads a folder of node package names subfolders and creates a file (jsonor php) with key (package name) value (version) pairs. An example use case is a project where you copy js and css files to a library folder from the node_modules folder. The webapp clients should then always load the latest version of the package files whenever they change (npm update). The plugin requires grunt.

Getting started

Simply install via:

$ npm install grunt-node-modules-cachebuster --save-dev

Example task

Imagine the public/lib folder contains this subfolders (copied from node_modules via grunt-contrib-copy): react, react-dom. Your Gruntfile.js can define a task like the below:

node_modules_cachebuster: {
    'publiclib': {
        options: {
            banner: '/* This file was automatically generated (' + new Date().toString() + '). */',
            format: 'php'
        },
        src: ['public/lib/*'],
        dest: 'inc/others/cachebuster-lib.php'
    }
}

The task above can result in (cachebuster-lib.php):

<?php
/* This file was automatically generated (Tue Nov 07 2017 21:52:14 GMT+0000 (UTC)). */
return array(
	'react' => '16.0.0',
	'react-dom' => '16.0.0'
);

API

  • options.format (string): php or json format. This format will be the output for the dest file.
  • options.banner (string): This text will be prepended to the output.
  • options.altNodeModules (string): Relative path to another node_modules folder, for example to work with hoisting (lerna, yarn workspaces)

License

This grunt task is MIT licensed. The project is inspired by this project: grunt-cachebuster.