Files
site/scripts/run.js
David Soulayrol 57deaaaf34 Import initial.
2022-04-04 18:30:08 +02:00

72 lines
1.5 KiB
JavaScript

const bs = require('browser-sync').create('Metalsmith')
const config = require('./config.js')
const debug = require('debug')('Run')
const metalsmith = require('./metalsmith')
const path = require('path')
const strip = require('strip-ansi')
function build (sync) {
debug('Building Metalsmith')
metalsmith.build((err) => {
if (err) {
debug('Metalsmith build error:')
debug(err)
if (sync) {
return bs.sockets.emit('fullscreen:message', {
title: 'Metalsmith Error:',
body: strip(`${err.message}\n\n${err.stack}`),
timeout: 100000
})
} else {
throw err
}
}
debug('Metalsmith build finished!')
if (sync) {
bs.reload()
}
})
}
function serve () {
bs.init({
server: config.paths.serverRoot,
port: 8080,
ui: {
port: 9000
},
open: false,
logLevel: 'debug',
logPrefix: 'BrowserSync',
logConnections: true,
logFileChanges: true,
notify: true,
files: [{
match: [
path.resolve(config.paths.projectRoot, 'content', '**', '*'),
path.resolve(config.paths.projectRoot, 'layouts', '**', '*.njk')
],
fn: function (event, file) {
build(true)
},
options: {
ignored: ['**/.#*', '**/*~', '**/#*#']
// /\.#|node_modules|~$/
}
}]
})
}
const args = process.argv.slice(2)
switch (args[0]) {
case 'build':
build()
break
case 'serve':
serve()
break
default:
console.log('Unknown arguments "' + args[0] + '"')
}