ada
Version:
a simple frentend build tool
61 lines (44 loc) • 1.48 kB
JavaScript
const webpack = require('webpack')
const WebpackDevServer = require('webpack-dev-server')
const getWebpackConfig = require('./webpack.config')
const startServer = options => {
const webpackConfig = getWebpackConfig(options)
options.debug && console.log('webpackConfig:\n', Object.assign({}, webpackConfig))
const compiler = webpack(webpackConfig)
const devServerOptions = Object.assign({}, webpackConfig.devServer, {
publicPath: `/${options.distDir}/`,
stats: {
colors: true,
children: false
}
})
options.debug && console.log('startServer options:\n', devServerOptions)
const server = new WebpackDevServer(compiler, devServerOptions)
server.listen(options.port, options.host, () => {
console.log(`ada starting server on http://${options.host}:${options.port}`)
})
}
const build = options => {
options.build = true
const webpackConfig = getWebpackConfig(options)
options.debug && console.log('webpackConfig:\n', Object.assign({}, webpackConfig))
const compiler = webpack(webpackConfig)
options.debug && console.log('build options:\n', options)
compiler.run((err, stats) => {
if (err) {
return console.error(err)
}
const info = stats.toJson()
if (stats.hasErrors()) {
console.error(info.errors)
}
if (stats.hasWarnings()) {
console.warn(info.warnings)
}
options.debug && console.log(stats.toJson('minimal'))
})
}
module.exports = {
startServer,
build
}