@fxext/cli
Version:
fanxing miniapp cli
37 lines (34 loc) • 1.41 kB
JavaScript
const path = require('path');
const webpack = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const qrcode = require('qrcode-terminal');
const webpackConfig = require('./webpack/webpack.config');
const { parseProjectConfig, getLocalIP } = require('./utils');
const log = require('./log');
async function main() {
const ROOT = process.cwd();
process.env.NODE_ENV = 'development';
const projectConfig = await parseProjectConfig(ROOT);
log.hint('\n正在启动调试服务器...\n');
const { builder: { appId, appMode, https, host, port } } = projectConfig;
const qrcodeUrl = `${https ? 'https' : 'http'}://${getLocalIP()}:${port}/index.html?type=miniapp&miniAppId=${appId}&appMode=${appMode}`;
const config = webpackConfig(projectConfig);
const compiler = webpack(config);
const server = new WebpackDevServer({
hot: true,
server: https ? 'https' : 'http',
host: host === 'localhost' ? '0.0.0.0' : host,
historyApiFallback: true,
allowedHosts: 'auto',
static: path.join(__dirname, '../webpack'),
headers: {
'Access-Control-Allow-Origin': '*'
},
port
}, compiler);
await server.start()
log.hint('\n调试服务器已启动\n');
qrcode.generate(qrcodeUrl, { small: true });
log.hint('\nAPP端调试二维码,详情查看:https://fanxing.kugou.com/open/doc/pages/develop/debug/app.html\n');
}
module.exports = main;