Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
backfork-core / bin / dev
Size: Mime:
#! /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)