{"_id":"grunt-changed","_rev":"48-25de5884765ef3688e4bba216ab86d30","name":"grunt-changed","dist-tags":{"latest":"3.0.0"},"versions":{"0.1.0":{"name":"grunt-changed","version":"0.1.0","keywords":["gruntplugin","grunt","changed","files"],"author":{"url":"http://github.com/bashofmann/","name":"Bastian Hofmann"},"_id":"grunt-changed@0.1.0","maintainers":[{"name":"bashofmann","email":"bashofmann@googlemail.com"}],"homepage":"https://github.com/researchgate/grunt-changed","bugs":{"url":"https://github.com/researchgate/grunt-changed/issues"},"dist":{"shasum":"e51289c717eba1d24bd75adfd4e1f4fc21ff8a57","tarball":"https://registry.npmjs.org/grunt-changed/-/grunt-changed-0.1.0.tgz","integrity":"sha512-efI7yBqSrTDmLn912589OfvP7M+ekqLmKfvVRY+yePRRhHkLAoHEtd2QbmmOojpCO8fPgYAOHEqC7Eb1UQpr0A==","signatures":[{"sig":"MEUCIQCA8obmZIp+3Cvu1VHEsPcSCTCnDFhZD2oO0mr9BTxA7wIgPAtsNkPY9bT+o0djhvxeA02ZVevms5B9J7csEKhiRyQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gruntfile.js","_from":".","_shasum":"e51289c717eba1d24bd75adfd4e1f4fc21ff8a57","engines":{"node":">= 0.8.0"},"gitHead":"eac992a731703b959c6b8b973f2c0883fd37a3c4","scripts":{"test":"grunt test","start":"grunt test watch"},"_npmUser":{"name":"bashofmann","email":"bashofmann@googlemail.com"},"licenses":[{"type":"MIT"}],"repository":{"url":"git://github.com/researchgate/grunt-changed.git","type":"git"},"_npmVersion":"2.1.6","description":"Run Grunt tasks with only those source files where the content changed to the last run.","directories":{},"_nodeVersion":"0.10.33","dependencies":{"async":"0.9.0","rimraf":"2.2.8"},"devDependencies":{"tmp":"0.0.24","chai":"1.9.2","grunt":"0.4.5","mkdirp":"0.5.0","wrench":"1.5.8","mock-fs":"2.x","grunt-cli":"0.1.13","grunt-cafe-mocha":"0.1.13","grunt-contrib-clean":"0.6.0","grunt-contrib-watch":"0.6.1","grunt-contrib-jshint":"0.10.0"},"peerDependencies":{"grunt":"~0.4.1"}},"0.1.1":{"name":"grunt-changed","version":"0.1.1","keywords":["gruntplugin","grunt","changed","files"],"author":{"url":"http://github.com/bashofmann/","name":"Bastian Hofmann"},"_id":"grunt-changed@0.1.1","maintainers":[{"name":"bashofmann","email":"bashofmann@googlemail.com"}],"homepage":"https://github.com/researchgate/grunt-changed","bugs":{"url":"https://github.com/researchgate/grunt-changed/issues"},"dist":{"shasum":"38546121591ec07cc5c825eef9a28bd6c6e1beae","tarball":"https://registry.npmjs.org/grunt-changed/-/grunt-changed-0.1.1.tgz","integrity":"sha512-SPIDWY/bNqFAh2hebwvit+gLu+RktIQZg78Y5t0C1sRCDnb07ZIRGx+hkXEg+aJAhB+gyDYMD7tL+yp3D2FHVQ==","signatures":[{"sig":"MEYCIQCk9bgrgGh8NtA+EhDsilwR4biPQH0ud/h/cLVzIdW0sQIhAOQDtnQ6+YK/y0mt/W1R9VQeu2BBW+7ICrZExKjedLRl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gruntfile.js","_from":".","_shasum":"38546121591ec07cc5c825eef9a28bd6c6e1beae","engines":{"node":">= 0.8.0"},"gitHead":"5b9435f76ddfb19258c199efdb71917f18490220","scripts":{"test":"grunt test","start":"grunt test watch"},"_npmUser":{"name":"bashofmann","email":"bashofmann@googlemail.com"},"licenses":[{"type":"MIT"}],"repository":{"url":"git://github.com/researchgate/grunt-changed.git","type":"git"},"_npmVersion":"2.1.6","description":"Run Grunt tasks with only those source files where the content changed to the last run.","directories":{},"_nodeVersion":"0.10.33","dependencies":{"async":"0.9.0","mkdirp":"0.5.0","rimraf":"2.2.8"},"devDependencies":{"tmp":"0.0.24","chai":"1.9.2","grunt":"0.4.5","wrench":"1.5.8","mock-fs":"2.x","grunt-cli":"0.1.13","grunt-cafe-mocha":"0.1.13","grunt-contrib-clean":"0.6.0","grunt-contrib-watch":"0.6.1","grunt-contrib-jshint":"0.10.0"},"peerDependencies":{"grunt":"~0.4.1"}},"1.0.0":{"name":"grunt-changed","version":"1.0.0","keywords":["gruntplugin","grunt","changed","files"],"author":{"url":"http://github.com/bashofmann/","name":"Bastian Hofmann"},"license":"MIT","_id":"grunt-changed@1.0.0","maintainers":[{"name":"bashofmann","email":"bashofmann@googlemail.com"},{"name":"danez","email":"daniel@tschinder.de"}],"homepage":"https://github.com/researchgate/grunt-changed","bugs":{"url":"https://github.com/researchgate/grunt-changed/issues"},"dist":{"shasum":"fc663cf2995e565895e962e8b7f948995b0e5d41","tarball":"https://registry.npmjs.org/grunt-changed/-/grunt-changed-1.0.0.tgz","integrity":"sha512-wW/A4FPcfzIKcj8lm3J7Qy2Ya4+I6E5NAR2uLwwbVVnxdRZ4Rfo5fTlJOwWpgiwfwRDpKYYsr3i4TZSvo5/+Yw==","signatures":[{"sig":"MEUCIEkWdDbQJEg3qGOyHPGD0H+sd2EjRbohD68J17FRsKsYAiEAkS24qjMkx0kUWaWo6PsoCi29NQxsuoNWBW10mza4O1g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gruntfile.js","_from":".","files":["lib","tasks"],"_shasum":"fc663cf2995e565895e962e8b7f948995b0e5d41","engines":{"node":">= 0.10.0"},"gitHead":"aa62176ae0a6a9f1876f9db5bab2d3f2e179673d","scripts":{"test":"grunt test","start":"grunt test watch"},"_npmUser":{"name":"danez","email":"daniel@tschinder.de"},"repository":{"url":"git://github.com/researchgate/grunt-changed.git","type":"git"},"_npmVersion":"3.8.1","description":"Run Grunt tasks with only those source files where the content changed to the last run.","directories":{},"_nodeVersion":"4.3.0","dependencies":{"async":"^1.5.2","mkdirp":"^0.5.1","rimraf":"^2.5.1"},"devDependencies":{"tmp":"^0.0.28","chai":"^3.5.0","grunt":"^0.4.5","mocha":"^2.4.5","wrench":"^1.5.8","mock-fs":"^3.7.0","grunt-cli":"^0.1.13","grunt-mocha-test":"^0.12.7","grunt-contrib-clean":"^1.0.0","grunt-contrib-watch":"^0.6.1","grunt-contrib-jshint":"^1.0.0"},"peerDependencies":{"grunt":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/grunt-changed-1.0.0.tgz_1457715307863_0.6523539752233773","host":"packages-13-west.internal.npmjs.com"}},"1.1.1":{"name":"grunt-changed","version":"1.1.1","keywords":["gruntplugin","grunt","changed","files"],"author":{"url":"http://github.com/bashofmann/","name":"Bastian Hofmann"},"license":"MIT","_id":"grunt-changed@1.1.1","maintainers":[{"name":"bashofmann","email":"bashofmann@googlemail.com"},{"name":"danez","email":"daniel@tschinder.de"}],"homepage":"https://github.com/researchgate/grunt-changed","bugs":{"url":"https://github.com/researchgate/grunt-changed/issues"},"dist":{"shasum":"15b318b933fa6d1f645706d32dbd77b9476e38c4","tarball":"https://registry.npmjs.org/grunt-changed/-/grunt-changed-1.1.1.tgz","integrity":"sha512-RVMds4IJzFQB40jEXX3iWK8FzwiKeyZHcDko0xLNuT9bFpSWyvtYk6XkBYt/LePCjyFZ1po7cNaaaSJrLwQX2w==","signatures":[{"sig":"MEUCIQDj7Yp5iFQU6QuH2rorouBe1LWbY+4fpWZQqPbwodvqlwIgAmu8YFg6k5+flmmY8MIrtw+9jAQL3aJeaTz6JLqnubA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gruntfile.js","_from":".","files":["lib","tasks"],"_shasum":"15b318b933fa6d1f645706d32dbd77b9476e38c4","engines":{"node":">= 0.10.0"},"gitHead":"3acf2eafd22ed1f538ec264569c1927b380e746f","scripts":{"test":"grunt test","start":"grunt test watch"},"_npmUser":{"name":"danez","email":"daniel@tschinder.de"},"repository":{"url":"git://github.com/researchgate/grunt-changed.git","type":"git"},"_npmVersion":"3.10.6","description":"Run Grunt tasks with only those source files where the content changed to the last run.","directories":{},"_nodeVersion":"4.4.7","dependencies":{"async":"^2.0.0","mkdirp":"^0.5.1","rimraf":"^2.5.1"},"devDependencies":{"tmp":"^0.0.28","chai":"^3.5.0","grunt":"^1.0.0","mocha":"^3.0.0","wrench":"^1.5.8","mock-fs":"^3.7.0","grunt-mocha-test":"^0.12.7","grunt-contrib-clean":"^1.0.0","grunt-contrib-watch":"^1.0.0","grunt-contrib-jshint":"^1.0.0"},"peerDependencies":{"grunt":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/grunt-changed-1.1.1.tgz_1470304761719_0.3188452471513301","host":"packages-12-west.internal.npmjs.com"}},"2.0.0":{"name":"grunt-changed","version":"2.0.0","keywords":["gruntplugin","grunt","changed","files"],"author":{"url":"http://github.com/bashofmann/","name":"Bastian Hofmann"},"license":"MIT","_id":"grunt-changed@2.0.0","maintainers":[{"name":"danez","email":"daniel@tschinder.de"},{"name":"bashofmann","email":"bashofmann@googlemail.com"},{"name":"tobias.hornberger","email":"tobias.hornberger@falsemirror.de"},{"name":"sbekrin","email":"sergey@bekrin.me"},{"name":"weaintplastic","email":"info@weaintplastic.com"},{"name":"rendez","email":"mail@luismerino.name"},{"name":"haeusler","email":"michael.haeusler@researchgate.net"},{"name":"sevinf","email":"sergey@tatarintsev.me"}],"homepage":"https://github.com/researchgate/grunt-changed","bugs":{"url":"https://github.com/researchgate/grunt-changed/issues"},"dist":{"shasum":"48875e42fc4668017f2f0974badd154fe42595ac","tarball":"https://registry.npmjs.org/grunt-changed/-/grunt-changed-2.0.0.tgz","integrity":"sha512-CDAqZOxidH84PyaKfsdHm2DQD7w1gRo1VQYgslSWYW3miiIYG3acV6fL6OG0mc/kooobMKBheUByor/6cKitXw==","signatures":[{"sig":"MEYCIQD5Y1plxd1YRp8Dv9m16WFA7e0mVh/wdhLuh8vYHbx1fAIhANjqE8VMXvUGzoo+FqbE3S3Psso3Z8lH8j3QLYiOWNgC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"gruntfile.js","files":["lib","tasks"],"engines":{"node":">= 0.10.0"},"gitHead":"e4da0a7f82c1a0a56ce4ee733375ef24e017a4f5","scripts":{"test":"grunt test","start":"grunt test watch"},"_npmUser":{"name":"bashofmann","email":"bashofmann@googlemail.com"},"repository":{"url":"git://github.com/researchgate/grunt-changed.git","type":"git"},"_npmVersion":"5.6.0","description":"Run Grunt tasks with only those source files where the content changed to the last run.","directories":{},"_nodeVersion":"9.3.0","dependencies":{"async":"^2.0.0","mkdirp":"^0.5.1","rimraf":"^2.5.1"},"devDependencies":{"tmp":"^0.0.33","chai":"^4.0.1","grunt":"^1.0.0","mocha":"^4.0.0","fs-extra":"^5.0.0","grunt-mocha-test":"^0.13.0","grunt-contrib-clean":"^1.0.0","grunt-contrib-watch":"^1.0.0","grunt-contrib-jshint":"^1.0.0"},"peerDependencies":{"grunt":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/grunt-changed-2.0.0.tgz_1515079905719_0.9282302323263139","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"grunt-changed","version":"2.0.1","keywords":["gruntplugin","grunt","changed","files"],"author":{"url":"http://github.com/bashofmann/","name":"Bastian Hofmann"},"license":"MIT","_id":"grunt-changed@2.0.1","maintainers":[{"name":"bashofmann","email":"bashofmann@googlemail.com"},{"name":"danez","email":"daniel@tschinder.de"},{"name":"haeusler","email":"michael.haeusler@researchgate.net"},{"name":"rendez","email":"mail@luismerino.name"},{"name":"sbekrin","email":"sergey@bekrin.me"},{"name":"sevinf","email":"sergey@tatarintsev.me"},{"name":"tobias.hornberger","email":"tobias.hornberger@falsemirror.de"},{"name":"weaintplastic","email":"info@weaintplastic.com"}],"homepage":"https://github.com/researchgate/grunt-changed","bugs":{"url":"https://github.com/researchgate/grunt-changed/issues"},"dist":{"shasum":"14ac4b2c0ac4d8ec71648010a408d82cdf7ca371","tarball":"https://registry.npmjs.org/grunt-changed/-/grunt-changed-2.0.1.tgz","fileCount":6,"integrity":"sha512-z7RCzCTl6e3kOqCAIOeie7LspGt34lSQ/czG4PXojgCeEEw16HtPoMTb6LlBBfxJpyoncH9aFvs6HIcpxtC++w==","signatures":[{"sig":"MEUCIEhharYvc0qkEi9nkxvgj8kk1iyvlabVG2GMHOScxRidAiEAx63H17MDo3YesZVZ8h2WiuXTNKa0VMRAFKW7SO99Uz4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22304},"main":"gruntfile.js","files":["lib","tasks"],"engines":{"node":">= 0.10.0"},"gitHead":"6cce24dc74a9becba203a18c3b3c55de29de245e","scripts":{"test":"grunt test","start":"grunt test watch"},"_npmUser":{"name":"danez","email":"daniel@tschinder.de"},"repository":{"url":"git://github.com/researchgate/grunt-changed.git","type":"git"},"_npmVersion":"5.6.0","description":"Run Grunt tasks with only those source files where the content changed to the last run.","directories":{},"_nodeVersion":"8.9.4","dependencies":{"async":"^2.0.0","mkdirp":"^0.5.1","rimraf":"^2.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tmp":"^0.0.33","chai":"^4.0.1","grunt":"^1.0.0","mocha":"^5.0.0","fs-extra":"^5.0.0","grunt-mocha-test":"^0.13.0","grunt-contrib-clean":"^1.0.0","grunt-contrib-watch":"^1.0.0","grunt-contrib-jshint":"^1.0.0"},"peerDependencies":{"grunt":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/grunt-changed_2.0.1_1519644521582_0.9391370374903347","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"grunt-changed","version":"3.0.0","keywords":["gruntplugin","grunt","changed","files"],"author":{"url":"http://github.com/bashofmann/","name":"Bastian Hofmann"},"license":"MIT","_id":"grunt-changed@3.0.0","maintainers":[{"name":"and","email":"and.webdev@gmail.com"},{"name":"danez","email":"daniel@tschinder.de"},{"name":"haeusler","email":"michael.haeusler@researchgate.net"},{"name":"ko","email":"kerocas@gmail.com"},{"name":"koga_rg","email":"andreas.koga@researchgate.net"},{"name":"kunze_rg","email":"dennis.kunze@researchgate.net"},{"name":"rendez","email":"mail@luismerino.name"},{"name":"roche_rg","email":"thomas.roche@researchgate.net"},{"name":"sevinf","email":"sergey@tatarintsev.me"},{"name":"weaintplastic","email":"info@weaintplastic.com"}],"homepage":"https://github.com/researchgate/grunt-changed","bugs":{"url":"https://github.com/researchgate/grunt-changed/issues"},"dist":{"shasum":"7679d4b8437170cb98edf009f970b18f9969230e","tarball":"https://registry.npmjs.org/grunt-changed/-/grunt-changed-3.0.0.tgz","fileCount":6,"integrity":"sha512-Eyrc7w/BVSyZw7q2S2voWBw/Iub58ZuWpC8i+EnsVIIPx61dDqX1aZMvtaMrP9NuIuSHSoOLN31nL06+5cB7sQ==","signatures":[{"sig":"MEQCIGEYQpQ8NBk4PNz9pXrjc8hVmEcWYYj7qHPUJNDUbzC4AiB368WfpbGWBJl0G0Yw6qXs9NUWdCJVwHdVDRXZvhUO5Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2svACRA9TVsSAnZWagAAeLoP/A7aECgSwQdvWl0cmfhr\nqG2iie4VlLcQkIss3XuxD4kMTr/4vWw+Smk0ocu7+YsmDPricbqLUd5BfmiL\n2h2qAmSqFXjr+d5Ixr2dSQeICendm/p7GaFFl/AVokhK9vQyfAUGGHP80zQT\nMkW+3UlSfbGi393rwyON832/YXv5yToCTwpVMU8975GyAL3x30OUorT7idWn\n3HlsePmB9ciXD621hlaiphpBLO9ceJLmQYtqKU3a77hzFzsssHjWRvcSSye2\nQGDPCW9OpoSIC+/XgVFlnsSM0S+a8421+l6TumKTuuC8eUSnFj5RH/b3rPRd\ncsWEnUG1hne/MwbjlwZW4ssrLX4QhK7cGr/vkeyCRCEI3p4ExYZLVhkNAiH3\nqgmAJ09lObiNuhZReX7Y8WMwhjsR+u8fDQD6vn70rcVaVog1eqMd8TIJuqCF\nq1ha54PiE2HxtacYlfs6NjLV9jjH67wi3YlPhsIK/bLgdEFUr3i8dnxmgs2k\nepo0Q6LHPfJb/ie7v90r2MAAJNy/94QE9eIqqH+buC5wrwrE6/Z+hFdNz80M\nTnQgnOesscJ13FEGSLjI4knHfInSVryx3ocERf1ADYXUNXvVlZ8E8Lxb2Fce\nuMIXu1ig7hyQ+PWu2lwREtFo0JpQ1cBA3wc4AZrckalVa1JCGP2xmYwBvRHC\nmP/Q\r\n=Lfw6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"gruntfile.js","engines":{"node":">=8.0.0"},"gitHead":"636ce77f00b07c893fe5fab003d7568670ed0e18","scripts":{"test":"grunt test","start":"grunt test watch"},"_npmUser":{"name":"danez","email":"daniel@tschinder.de"},"repository":{"url":"git://github.com/researchgate/grunt-changed.git","type":"git"},"_npmVersion":"6.10.0","description":"Run Grunt tasks with only those source files where the content changed to the last run.","directories":{},"_nodeVersion":"12.7.0","dependencies":{"async":"^3.1.0","mkdirp":"^0.5.1","rimraf":"^2.5.1"},"_hasShrinkwrap":false,"devDependencies":{"tmp":"^0.1.0","chai":"^4.0.1","grunt":"^1.0.0","mocha":"^6.2.0","fs-extra":"^8.1.0","grunt-mocha-test":"^0.13.0","grunt-contrib-clean":"^2.0.0","grunt-contrib-watch":"^1.0.0","grunt-contrib-jshint":"^2.1.0"},"peerDependencies":{"grunt":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/grunt-changed_3.0.0_1565786323936_0.5969385612058795","host":"s3://npm-registry-packages"}}},"time":{"created":"2014-11-05T11:54:41.465Z","modified":"2026-01-29T19:44:46.105Z","0.1.0":"2014-11-05T11:54:41.465Z","0.1.1":"2014-11-05T12:00:34.983Z","1.0.0":"2016-03-11T16:55:10.336Z","1.1.1":"2016-08-04T09:59:23.224Z","2.0.0":"2018-01-04T15:31:45.836Z","2.0.1":"2018-02-26T11:28:41.658Z","3.0.0":"2019-08-14T12:38:44.048Z"},"bugs":{"url":"https://github.com/researchgate/grunt-changed/issues"},"author":{"url":"http://github.com/bashofmann/","name":"Bastian Hofmann"},"license":"MIT","homepage":"https://github.com/researchgate/grunt-changed","keywords":["gruntplugin","grunt","changed","files"],"repository":{"url":"git://github.com/researchgate/grunt-changed.git","type":"git"},"description":"Run Grunt tasks with only those source files where the content changed to the last run.","maintainers":[{"email":"michael.haeusler@researchgate.net","name":"haeusler"},{"email":"stefan.hoth@researchgate.net","name":"researchgate-bot"},{"email":"michael.diodone@researchgate.net","name":"mdio"},{"email":"it-contact@researchgate.net","name":"grid_rg"}],"readme":"# grunt-changed\n\n[![Build Status](https://travis-ci.org/researchgate/grunt-changed.svg?branch=master)](https://travis-ci.org/researchgate/grunt-changed)\n[![npm](https://img.shields.io/npm/v/grunt-changed.svg)](https://www.npmjs.com/package/grunt-changed)\n\nConfigure [Grunt](http://gruntjs.com/) tasks to run with changed file contents only.\n\n**Synopsis:**  The [`changed`](#changed) task will configure another task to run with `src` files that have *a)* different content than on the previous run (based on md5 hash).  See below for examples and more detail. This library is heavily inspired by and based on [`grunt-newer`](https://npmjs.org/package/grunt-newer)\n\n## Getting Started\nThis plugin requires at least Grunt `0.4.1` and is also compatible to version `1.0.0`\n\nIf you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [`gruntfile.js`](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:\n\n```shell\nnpm install grunt-changed --save-dev\n```\n\nOnce the plugin has been installed, it may be enabled inside your `gruntfile.js` with this line:\n\n```js\ngrunt.loadNpmTasks('grunt-changed');\n```\n\n<a name=\"changed\"></a>\n## The `changed` task\n\nThe `changed` task doesn't require any special configuration.  To use it, just add `changed` as the first argument when running other tasks.\n\nFor example, if you want to use [Uglify](https://npmjs.org/package/grunt-contrib-uglify) to minify your source files only when one or more of them is changed compared to the previous run, configure the `uglify` task as you would otherwise, and then register a task with `changed` at the front.\n\n```js\n  grunt.initConfig({\n    uglify: {\n      all: {\n        files: {\n          'dest/app.min.js': ['src/**/*.js']\n        }\n      }\n    }\n  });\n\n  grunt.loadNpmTasks('grunt-contrib-uglify');\n  grunt.loadNpmTasks('grunt-changed');\n\n  grunt.registerTask('minify', ['changed:uglify:all']);\n```\n\nWith the above configuration the `minify` task will only run `uglify` if one or more of the `src/**/*.js` files changed after the last run.\n\nThe `changed` task can also be used with tasks that don't generate any `dest` files.\n\nFor example, if you want to run [JSHint](https://npmjs.org/package/grunt-contrib-jshint) on only those files that have been modified since the last successful run, configure the `jshint` task as you would otherwise, and then register a task with `changed` at the front.\n\n```js\n  grunt.initConfig({\n    jshint: {\n      options: {\n        jshintrc: '.jshintrc'\n      },\n      all: {\n        src: 'src/**/*.js'\n      }\n    }\n  });\n\n  grunt.loadNpmTasks('grunt-contrib-jshint');\n  grunt.loadNpmTasks('grunt-changed');\n\n  grunt.registerTask('lint', ['changed:jshint:all']);\n```\n\nWith the above configuration, running `grunt lint` will configure your `jshint:all` task to use only files in the `jshint.all.src` config that have been modified since the last successful run of the same task.  The first time the `jshint:changed:all` task runs, all source files will be used.  After that, only the files you modify will be run through the linter.\n\nAnother example is to use the `changed` task in conjunction with `watch`.  For example, you might want to set up a watch to run a linter on all your `.js` files whenever one changes.  With the `changed` task, instead of re-running the linter on all files, you only need to run it on the files that changed.\n\n```js\n  var srcFiles = 'src/**/*.js';\n\n  grunt.initConfig({\n    jshint: {\n      all: {\n        src: srcFiles\n      }\n    },\n    watch: {\n      all: {\n        files: srcFiles,\n        tasks: ['changed:jshint:all']\n      }\n    }\n  });\n\n  grunt.loadNpmTasks('grunt-contrib-jshint');\n  grunt.loadNpmTasks('grunt-contrib-watch');\n  grunt.loadNpmTasks('grunt-changed');\n\n```\n\nWith the above configuration, running `grunt jshint watch` will first lint all your files with `jshint` and then set up a watch.  Whenever one of your source files changes, the `jshint` task will be run on just the modified file.\n\n## Options for the `changed` task\n\nIn most cases, you shouldn't need to add any special configuration for the `changed` task.  Just `grunt.loadNpmTasks('grunt-changed')` and you can use `changed` as a prefix to your other tasks.  The options below are available for advanced usage.\n\n#### <a id=\"optionscache\">options.cache</a>\n * type: `string`\n * default: `node_modules/grunt-changed/.cache`\n\nTo keep track of timestamps for successful runs, the `changed` task writes to a cache directory.  The default is to use a `.cache` directory within the `grunt-changed` installation directory.  If you need timestamp info to be written to a different location, configure the task with a `cache` option.\n\nExample use of the `cache` option:\n\n```js\n  grunt.initConfig({\n    changed: {\n      options: {\n        cache: 'path/to/custom/cache/directory'\n      }\n    }\n  });\n```\n\n## That's it\n\nPlease [submit an issue](https://github.com/researchgate/grunt-changed/issues) if you encounter any trouble.  Contributions or suggestions for improvements welcome!\n\n## Known limitations\n\nThe `changed` task relies on Grunt's convention for specifying [`src`/`dest` mappings](http://gruntjs.com/configuring-tasks#files).  So it should be expected to work with two types of tasks:\n\nTasks that specify `src` files: The task prefixed by `changed` will be configured to run with `src` files that have changed content to the last run (based on md5 hash of files).\n\n\n","readmeFilename":"README.md"}