judocss
Version:
The functional CSS toolkit designed for minimal effort and maximum efficiency.
64 lines (47 loc) • 1.47 kB
JavaScript
const fs = require("fs")
const cwd = process.cwd()
const configPath = cwd+'/judo.conf.js'
fs.access(configPath, fs.F_OK, function(err) {
if (!err) {
const config = require(configPath)
const chokidar = require('chokidar')
//=================================
const watch = (glob, callback) => {
var watcher = chokidar.watch(glob, {}).on('all', callback)
}
//=================================
const connect = require('connect')
const serveStatic = require('serve-static')
var http = require('http')
const tinylr = require('tiny-lr')()
const tinylrPort = 35729
const httpPort = config.port
const judo = require('judocss')
let app
const createApp = (watchPath) => {
app = connect();
app.use(require('connect-livereload')({
port: tinylrPort,
serverPort: httpPort
}));
app.use(serveStatic(watchPath));
tinylr.listen(tinylrPort);
http.createServer(app).listen(httpPort);
console.log('Server running at http://localhost:' + httpPort);
watch(config.in, (event, filePath) => {
judo(config, () => {
reload(filePath)
})
})
}
createApp(cwd + "/" +config.serverRoot)
const reload = (filePath) => {
tinylr.changed({body: {
files: [filePath]
}})
}
} else {
console.log("No config file found, please read the installation instructions.")
}
});