UNPKG

@fxext/cli

Version:

fanxing miniapp cli

37 lines (34 loc) 1.41 kB
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;