UNPKG

webpack-papa-script

Version:
68 lines (54 loc) 1.7 kB
/** * Created by Nonjene on 2017/2/10. */ const { exec } = require("child_process"); const opn = require('opn'); const { getConf } = require('./config'); const path = require('path'); const logger = require('./util/logger'); let serve; const serveOpen = function () { const DefProxyPort = getConf('proxyPort'), DefServePort = getConf('servePort'); return new Promise((resovle, reject) => { /* istanbul ignore if */ if (serve) return reject('只能执行一次server start.'); logger.log('serve:'+DefProxyPort); serve = exec(`node ${path.join(__dirname, '../server')} S ${DefServePort} P ${DefProxyPort}`, function (err, stdout, stderr) { if (err) { reject(err); } }); serve.stdout.on('data', (data) => { logger.log(`${data}`); if (data.indexOf('server started') > -1) { resovle(); } }); serve.on('exit', function (code) { logger.log('server stop, code ' + code); }); }) }; const stop = function () { /* istanbul ignore if */ if (!serve) return; serve.kill(); setTimeout(() => serve = null, 0); }; const start = function ({isOpen=true}={}) { const DefServePort = getConf('servePort'); return serveOpen() .then(() => { let addr = 'http://localhost:'+ DefServePort +'/activity/'; addr += getConf('target')[0]+'/'+ getConf('duan')[0]+'/'; isOpen && opn(addr, { wait: false }); }) .catch(err => { /* istanbul ignore next */ console.error(err); }); }; module.exports = { start, stop };