@auser/metalsmith-watch

    1.0.4 • Public • Published

    metalsmith-watch Build Status NPM version

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

    Installation

    $ npm install metalsmith-watch

    Usage

    var metalsmith = require('metalsmith');
    var watch = require('metalsmith-watch');
    
    metalsmith(__dirname)
      .use(
        watch({
          paths: {
            "${source}/**/*": true,
            "templates/**/*": "**/*.md",
          },
          livereload: true,
        })
      )
      .build();

    Options

    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.

    Changelog

    License

    Install

    npm i @auser/metalsmith-watch

    DownloadsWeekly Downloads

    0

    Version

    1.0.4

    License

    MIT

    Last publish

    Collaborators

    • auser