line_push/node_modules/@nuxt/cli/dist/cli-banner.js
2022-07-17 13:16:16 +08:00

90 lines
2.5 KiB
JavaScript

/*!
* @nuxt/cli v2.13.3 (c) 2016-2020
* - All the amazing contributors
* Released under the MIT License.
* Website: https://nuxtjs.org
*/
'use strict';
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
const index = require('./cli-index.js');
const chalk = _interopDefault(require('chalk'));
const env = _interopDefault(require('std-env'));
const consola = _interopDefault(require('consola'));
const prettyBytes = _interopDefault(require('pretty-bytes'));
function getMemoryUsage () {
// https://nodejs.org/api/process.html#process_process_memoryusage
const { heapUsed, rss } = process.memoryUsage();
return { heap: heapUsed, rss }
}
function getFormattedMemoryUsage () {
const { heap, rss } = getMemoryUsage();
return `Memory usage: ${chalk.bold(prettyBytes(heap))} (RSS: ${prettyBytes(rss)})`
}
function showMemoryUsage () {
consola.info(getFormattedMemoryUsage());
}
function showBanner (nuxt, showMemoryUsage = true) {
if (env.test) {
return
}
if (env.minimalCLI) {
for (const listener of nuxt.server.listeners) {
consola.info('Listening on: ' + listener.url);
}
return
}
const titleLines = [];
const messageLines = [];
// Name and version
const { bannerColor, badgeMessages } = nuxt.options.cli;
titleLines.push(`${chalk[bannerColor].bold('Nuxt.js')} @ ${nuxt.constructor.version || 'exotic'}\n`);
const label = name => chalk.bold.cyan(`${name}:`);
// Environment
const isDev = nuxt.options.dev;
let _env = isDev ? 'development' : 'production';
if (process.env.NODE_ENV !== _env) {
_env += ` (${chalk.cyan(process.env.NODE_ENV)})`;
}
titleLines.push(`${label('Environment')} ${_env}`);
// Rendering
const isSSR = nuxt.options.render.ssr;
const rendering = isSSR ? 'server-side' : 'client-side';
titleLines.push(`${label('Rendering')} ${rendering}`);
// Target
const target = nuxt.options.target || 'server';
titleLines.push(`${label('Target')} ${target}`);
if (showMemoryUsage) {
titleLines.push('\n' + getFormattedMemoryUsage());
}
// Listeners
for (const listener of nuxt.server.listeners) {
messageLines.push(chalk.bold('Listening: ') + chalk.underline.blue(listener.url));
}
// Add custom badge messages
if (badgeMessages.length) {
messageLines.push('', ...badgeMessages);
}
process.stdout.write(index.successBox(messageLines.join('\n'), titleLines.join('\n')));
}
exports.showBanner = showBanner;
exports.showMemoryUsage = showMemoryUsage;