Repository URL to install this package:
Version:
0.8.0 ▾
|
#! /usr/bin/env node
const webpack = require('webpack')
const nodemon = require('nodemon')
const paths = require('../config/paths')
const once = require('ramda').once
const defaultConfig = require('../config/webpack.config')
const path = require('path')
const fs = require('fs')
const options = {
env: 'development'
}
const configPath = path.resolve('backpack.config.js')
let userConfig = {}
if (fs.existsSync(configPath)) {
const userConfigModule = require(configPath)
userConfig = userConfigModule.default || userConfigModule
}
const serverConfig = userConfig.webpack
? userConfig.webpack(defaultConfig(options), options, webpack)
: defaultConfig(options)
process.on('SIGINT', process.exit)
const serverCompiler = webpack(serverConfig)
const startServer = () => {
const serverPaths = Object
.keys(serverCompiler.options.entry)
.map(entry => path.join(serverCompiler.options.output.path, `${entry}.js`))
nodemon({ script: serverPaths[0], watch: serverPaths, nodeArgs: process.argv.slice(2) })
.on('quit', process.exit)
}
const startServerOnce = once((err, stats) => {
if (err) return
startServer()
})
serverCompiler.watch(serverConfig.watchOptions || {}, startServerOnce)