1. metalsmith-watch
Metalsmith plugin to watch for changes and trigger partial and full rebuilds
metalsmith-watch
Package: metalsmith-watch
Created by: FWeinb
Last modified: Sun, 19 Jun 2022 18:20:04 GMT
Version: 1.0.3
License: MIT
Downloads: 1,274
Repository: https://github.com/FWeinb/metalsmith-watch

Install

npm install metalsmith-watch
yarn add metalsmith-watch

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.

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

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code