Metalsmith package to only rebuild the modified files.
npm install metalsmith-revision
import revision from 'metalsmith-revision'
// OR
const revision = require('metalsmith-revision').default
Metalsmith(__dirname)
.use(revision())
.use(markdown())
//...your plugins
.build()
If you use matealsmith-layouts, you need inform the plugin:
import layouts from 'metalsmith-layouts'
import revision from 'metalsmith-revision'
// OR
const revision = require('metalsmith-revision').default
Metalsmith(__dirname)
.use(revision({ layout: true, layoutDir: './layouts' }))
.use(markdown())
.use(layouts({ engine: 'jade'}))
//...your plugins
.build()
By default, layout are deactivated. If you do not specified a directory, the plugin will look for the default one ('./layouts').
You can find some performance test here: benchmark
Feel free to make issues or PRs or do some test (i would love that ;) ).