Metalsmith plugin to watch for changes and trigger partial and full rebuilds
Last updated 3 years ago by jannis .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @jannis/metalsmith-watch 
SYNC missed versions from official npm registry.

metalsmith-watch Build Status NPM version

Metalsmith plugin to watch for changes and trigger partial and full rebuilds.


$ npm install metalsmith-watch


var metalsmith = require('metalsmith');
var watch = require('metalsmith-watch');

      paths: {
        "${source}/**/*": true,
        "templates/**/*": "**/*.md",
      livereload: true,


paths (default: {"${source}/**/*": true})

Map of paths to trigger rebuild. Both keys and value accept a glob pattern.

  "file(s) to watch": "file(s) to rebuild"

Value accept a boolean. When a boolean is used, only watched files changed will be rebuilded.

  "${source}/**/*": true, // every changed files will trigger a rebuild of themselves
  "templates/**/*": "**/*", // every templates changed will trigger a rebuild of all files

Please note that:

  • ${source} is replaced by metalsmith.source().
  • values of the map are relative to metalsmith.source() (because it's the only place where to build files)

livereload (default: false)

Allows you to enable a livereload server. Using a boolean will enable a livereload server on port the default port is 35729. Accept a port number to start on the port you need.

To get live reload working properly, you should add the following <script> in your templates files to enable livereloading of each pages:

<script src="http://localhost:35729/livereload.js"></script>

Make sure to update the port number in the script above accordingly to the port specified.

onUpdateCallback (default: undefined)

Allows you to define a function to get called after metalsmith has reloaded all the files. If a function is passed, this will be called with the updated files and all options passed.

  onUpdateCallback: function (files, options) {
    // Called on every rebuild

log (default: function(...args) { console.log(prefix, ...args)})

Function used to display the logs.

invalidateCache (default: true)

Allows you to enable cache invalidation for js files. Convenient if you use some js files for templates (eg: React templates) to get updated components. If disabled you won't get update for changed js files as node/iojs use a cache.



Current Tags

  • 1.0.4                                ...           latest (3 years ago)

1 Versions

  • 1.0.4                                ...           3 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 1
Last Month 1
Dependencies (7)
Dev Dependencies (9)
Dependents (0)

Copyright 2014 - 2016 © taobao.org |