chore(cli): extract create-vant-cli-app package

This commit is contained in:
陈嘉涵
2020-01-16 18:02:34 +08:00
parent 62a1b39b2b
commit 5bb9a31e28
32 changed files with 2492 additions and 697 deletions

View File

@@ -5,8 +5,8 @@ import WebpackDevServer from 'webpack-dev-server';
import { get } from 'lodash';
import { getPort } from 'portfinder';
import { GREEN } from '../common/constant';
import { siteDevConfig } from '../config/webpack.site.dev';
import { sitePrdConfig } from '../config/webpack.site.prd';
import { getSiteDevConfig } from '../config/webpack.site.dev';
import { getSitePrdConfig } from '../config/webpack.site.prd';
function logServerInfo(port: number) {
const local = `http://localhost:${port}/`;
@@ -17,16 +17,16 @@ function logServerInfo(port: number) {
console.log(` ${chalk.bold('Network')}: ${chalk.hex(GREEN)(network)}`);
}
function runDevServer(port: number) {
const server = new WebpackDevServer(
webpack(siteDevConfig),
siteDevConfig.devServer
);
function runDevServer(
port: number,
config: ReturnType<typeof getSiteDevConfig>
) {
const server = new WebpackDevServer(webpack(config), config.devServer);
// this is a hack to disable wds status log
(server as any).showStatus = function() {};
const host = get(siteDevConfig.devServer, 'host', 'localhost');
const host = get(config.devServer, 'host', 'localhost');
server.listen(port, host, (err?: Error) => {
if (err) {
console.log(err);
@@ -35,9 +35,11 @@ function runDevServer(port: number) {
}
function watch() {
const config = getSiteDevConfig();
getPort(
{
port: siteDevConfig.devServer!.port
port: config.devServer!.port
},
(err, port) => {
if (err) {
@@ -46,14 +48,16 @@ function watch() {
}
logServerInfo(port);
runDevServer(port);
runDevServer(port, config);
}
);
}
function build() {
return new Promise((resolve, reject) => {
webpack(sitePrdConfig, (err, stats) => {
const config = getSitePrdConfig();
webpack(config, (err, stats) => {
if (err || stats.hasErrors()) {
reject();
} else {