From a2da5d9821a0aa3ebb4f819c8fd8aeb67dd50476 Mon Sep 17 00:00:00 2001 From: harrywan Date: Tue, 27 Oct 2020 14:31:37 +0800 Subject: [PATCH] =?UTF-8?q?chore(fes-cli):=20=E8=A7=84=E8=8C=83cli?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fes-cli/build/configs/webpack.config.js | 3 ++- packages/fes-cli/build/helpers/config.js | 7 ------- .../fes-cli/build/helpers/createDevServer.js | 7 ++++--- packages/fes-cli/build/helpers/log.js | 20 ++++++++++++++++--- packages/fes-cli/build/mock/init.js | 10 +++++----- packages/fes-cli/build/preComplie/route.js | 1 - packages/fes-cli/build/tasks/build.js | 7 ++++--- packages/fes-cli/build/tasks/dev.js | 6 +++--- packages/fes-cli/build/tasks/init.js | 6 +++--- packages/fes-cli/build/tasks/test.js | 6 +++--- packages/fes-cli/build/tasks/update.js | 4 ++-- 11 files changed, 43 insertions(+), 34 deletions(-) diff --git a/packages/fes-cli/build/configs/webpack.config.js b/packages/fes-cli/build/configs/webpack.config.js index c0df21b5..4a2812f4 100644 --- a/packages/fes-cli/build/configs/webpack.config.js +++ b/packages/fes-cli/build/configs/webpack.config.js @@ -13,6 +13,7 @@ const HtmlPlugin = require('html-webpack-plugin'); const CompressionWebpackPlugin = require('compression-webpack-plugin'); const autoprefixer = require('autoprefixer'); const browsers = require('../helpers/browser'); +const log = require('../helpers/log'); function handleGzipCompress(compress) { @@ -489,7 +490,7 @@ module.exports = function webpackConfig(configs, webpack, mode) { let advancedConfig = {}; const projectWebpackConfigFile = path.resolve(configs.folders.PROJECT_DIR, 'webpack.config.js'); if (fs.existsSync(projectWebpackConfigFile)) { - console.log('[init] 加载项目个性webpack配置文件'); + log.message('加载项目个性webpack配置'); // eslint-disable-next-line advancedConfig = require(projectWebpackConfigFile)(mode, configs, webpack); } diff --git a/packages/fes-cli/build/helpers/config.js b/packages/fes-cli/build/helpers/config.js index 26d75a91..8ea76bdb 100644 --- a/packages/fes-cli/build/helpers/config.js +++ b/packages/fes-cli/build/helpers/config.js @@ -1,6 +1,5 @@ const path = require('path'); const fs = require('fs'); -const log = require('./log'); function generateConfig(command, env) { // cli目录 @@ -51,12 +50,6 @@ function generateConfig(command, env) { } } - if (!config.needCDN) { - if (config.command === 'dev' || config.command === 'build') { - log.warn('项目没有配置cdn,打包之后将不会请求cdn的地址,请开发者注意!!'); - } - } - return config; } diff --git a/packages/fes-cli/build/helpers/createDevServer.js b/packages/fes-cli/build/helpers/createDevServer.js index e193ee4a..9c33a9b0 100644 --- a/packages/fes-cli/build/helpers/createDevServer.js +++ b/packages/fes-cli/build/helpers/createDevServer.js @@ -16,6 +16,10 @@ module.exports = function createDevServer(port, defaultConfig) { defaultConfig.plugins.push(new webpack.NamedModulesPlugin()); const app = express(); + + // 初始化Mock数据 + initMock(app); + const compiler = webpack(defaultConfig); // devServer 自带支持,添加自定义插件。 @@ -40,9 +44,6 @@ module.exports = function createDevServer(port, defaultConfig) { app.use('/static', express.static('src/static')); - // 初始化Mock数据 - initMock(app); - opn(`http://localhost:${port}`); http.createServer(app).listen(port); diff --git a/packages/fes-cli/build/helpers/log.js b/packages/fes-cli/build/helpers/log.js index a4582378..0ed89548 100644 --- a/packages/fes-cli/build/helpers/log.js +++ b/packages/fes-cli/build/helpers/log.js @@ -1,13 +1,27 @@ const chalk = require('chalk'); +const getTime = function () { + const now = new Date(); + return now.toLocaleString(); +}; + +const log = function (type, message) { + // const rn = /\n/.test(message) || /\r/.test(message); + // if (rn) { + // console.log(chalk[type](`${getTime()}[fes] `)); + // return console.log(chalk[type](message)); + // } + return console.log(`${getTime()} [fes] ${chalk[type](message)}`); +}; + module.exports = { error(msg) { - return console.log(chalk.red(msg)); + return log('red', msg); }, warn(msg) { - return console.log(chalk.yellow(msg)); + return log('yellow', msg); }, message(msg) { - return console.log(chalk.cyan(msg)); + return log('cyan', msg); } }; diff --git a/packages/fes-cli/build/mock/init.js b/packages/fes-cli/build/mock/init.js index 664ddbb4..a9b99ebd 100644 --- a/packages/fes-cli/build/mock/init.js +++ b/packages/fes-cli/build/mock/init.js @@ -59,22 +59,22 @@ const main = { util.cleanCache(cgiMockFile); try { if (!fs.existsSync(cgiMockFile)) { - log.error('[WARN] 不存在mock.js文件'); + log.error('mock.js文件不存在,请检查!'); } else { // eslint-disable-next-line const projectMock = require(cgiMockFile); if (util.isFunction(projectMock)) { global.router.stack = []; projectMock(cgiMock, Mock, faker); - log.message('[SUCCESS] mock.js 加载成功'); + log.message('mock.js 加载成功'); } else { log.error( - `[ERROR] mock.js cannot be ${typeof projectMock}` + 'mock.js 应该导出Function !' ); } } } catch (e) { - log.error('[ERROR] mock.js 有误,请检查'); + log.error('mock.js 加载失败,请检查:'); log.error(JSON.stringify(e)); } }; @@ -88,7 +88,7 @@ const main = { }); util.watchFile(cgiMockFile, () => { - log.message('[INFO] mock.js 发生变化'); + log.message('mock.js 发生变化,重新加载Mock'); loadRouteConfig(); }); } diff --git a/packages/fes-cli/build/preComplie/route.js b/packages/fes-cli/build/preComplie/route.js index 90383832..55a608e2 100644 --- a/packages/fes-cli/build/preComplie/route.js +++ b/packages/fes-cli/build/preComplie/route.js @@ -127,7 +127,6 @@ const fix = function (routes) { routes.forEach((item) => { const path = item.path; let arr = path.split('/'); - // console.log(arr); if (arr[0] === '') { arr = arr.slice(1); } diff --git a/packages/fes-cli/build/tasks/build.js b/packages/fes-cli/build/tasks/build.js index 8c55c893..c3602318 100644 --- a/packages/fes-cli/build/tasks/build.js +++ b/packages/fes-cli/build/tasks/build.js @@ -12,13 +12,14 @@ function startBuild(config) { const webpackConfig = createProdConfig(config, webpack, 'build'); webpack(webpackConfig, (err) => { if (err) { - log.error(err); + log.error(JSON.stringify(err)); return; } - console.log('[build] success'); + log.message('执行build成功'); }); } catch (e) { - log.error(e); + log.message('执行build失败:'); + log.error(JSON.stringify(e)); } } diff --git a/packages/fes-cli/build/tasks/dev.js b/packages/fes-cli/build/tasks/dev.js index d389a598..8bddd8dd 100644 --- a/packages/fes-cli/build/tasks/dev.js +++ b/packages/fes-cli/build/tasks/dev.js @@ -52,11 +52,11 @@ function startDev(config) { getPort(config.ports.server) .then((port) => { - log.message(`------------ find port success. port: ${port}`); + log.message(`dev本地http服务端口: ${port}`); createDevServer(port, webpackConfig); }).catch((err) => { - log.message('------------ build error.'); - log.error(err); + log.message('执行dev失败:'); + log.error(JSON.stringify(err)); }); } diff --git a/packages/fes-cli/build/tasks/init.js b/packages/fes-cli/build/tasks/init.js index 3e40600d..333f4b7b 100644 --- a/packages/fes-cli/build/tasks/init.js +++ b/packages/fes-cli/build/tasks/init.js @@ -7,15 +7,15 @@ const log = require('../helpers/log'); function createProject(config, projectName) { - log.message('正在初始化项目...'); + log.message('正在初始化项目'); const projectDir = path.resolve(config.folders.PROJECT_DIR, projectName); if (fs.pathExistsSync(projectDir)) { log.error('该项目已存在,请重新输入!'); return Promise.reject(); } - return new Promise((resolve, reject) => { + return new Promise((resolve) => { const productDir = `${config.folders.PROJECT_DIR}/${projectName}`; - const stdout = execSync(`npm pack @webank/fes-template`, { encoding: 'utf8', stdio: [null]}); + const stdout = execSync('npm pack @webank/fes-template', { encoding: 'utf8', stdio: [null] }); const filePath = path.resolve(config.folders.PROJECT_DIR, stdout.replace('\n', '')); fs.mkdirSync(projectDir); fs.createReadStream(filePath).pipe( diff --git a/packages/fes-cli/build/tasks/test.js b/packages/fes-cli/build/tasks/test.js index 4775b48a..5db3d036 100644 --- a/packages/fes-cli/build/tasks/test.js +++ b/packages/fes-cli/build/tasks/test.js @@ -24,15 +24,15 @@ module.exports = function (config, rawArgv) { stdio: 'inherit' }); child.on('error', (e) => { - log.error('[ERROR] test命令执行失败'); + log.error('执行test失败:'); log.error(JSON.stringify(e)); }); child.on('exit', (code) => { if (code !== 0) { - log.message(`[fes] mochapack进程退出,code ${code}.`); + log.message(`mochapack进程退出,code ${code}.`); } }); } else { - log.warn('[WRAN] 测试目录不存在,请在项目根目录创建目录test'); + log.warn('测试目录不存在,请在项目根目录创建目录test'); } }; diff --git a/packages/fes-cli/build/tasks/update.js b/packages/fes-cli/build/tasks/update.js index 38f11487..0e917d77 100644 --- a/packages/fes-cli/build/tasks/update.js +++ b/packages/fes-cli/build/tasks/update.js @@ -5,10 +5,10 @@ function update(config) { log.message('安装@webank/fes-core @webank/fes-ui...'); exec(`cd ${config.folders.PROJECT_DIR} && npm i @webank/fes-core @webank/fes-ui --save && npm i`, (err) => { if (err) { - console.error(err); + log.error(err); return; } - log.message('升级完毕'); + log.message('升级fes完毕'); }); }