Acho CLI Logger Skin
acho-skin-cli is a dedicated plugin for the `acho` logging library, designed to provide a set of pre-defined log types specifically tailored for command-line interface (CLI) applications. Its primary function is to enhance the visual presentation of log messages within a terminal, offering consistent and clear output for various states like success, error, info, and warnings. The package is currently at version `2.0.1`, indicating a stable release. While no explicit release cadence is documented, its integration with `acho@4.x` as a peer dependency suggests a mature and maintained component within the `acho` ecosystem. Key differentiators include its singular focus on CLI-specific log styling and its lightweight integration as a types object directly into the `acho` logger, rather than being a standalone logger itself. It is intended to be used in conjunction with `acho` to achieve styled CLI output.
Common errors
-
TypeError: acho is not a function
cause The `acho` peer dependency is missing or incorrectly imported, leading to `acho` being `undefined` or not a function when `require('acho')` is called.fixInstall `acho` using `npm install acho`. Verify that `acho` is correctly `require`d before `acho-skin-cli` is used. -
SyntaxError: Cannot use import statement outside a module
cause Attempting to use `import` syntax (e.g., `import achoSkinCli from 'acho-skin-cli'`) in a Node.js environment configured for CommonJS, or in a browser without a build step.fixReplace `import` statements with `const cliSkinTypes = require('acho-skin-cli');`. If you need to use ESM, ensure your `package.json` has `"type": "module"` and all dependencies support ESM, or use dynamic `import()`.
Warnings
- gotcha This package is explicitly designed for CommonJS (CJS) environments using `require()`. Attempting to `import` it in an ES Module (ESM) context without proper transpilation or configuration will result in errors.
- gotcha The `acho` library is a peer dependency, meaning it must be installed separately in your project alongside `acho-skin-cli`. The package will not function without `acho` being present.
- gotcha The functionality of `acho-skin-cli` is entirely dependent on the `acho` logger. It provides only the 'skin' (log types), not the logging mechanism itself. Calling methods on the returned object directly (e.g., `require('acho-skin-cli').info()`) will not work.
Install
-
npm install acho-skin-cli -
yarn add acho-skin-cli -
pnpm add acho-skin-cli
Imports
- cliSkinTypes
import cliSkinTypes from 'acho-skin-cli';
const cliSkinTypes = require('acho-skin-cli'); - AchoLoggerInitialization
import acho from 'acho'; import cliSkinTypes from 'acho-skin-cli'; const log = acho({ types: cliSkinTypes });const acho = require('acho'); const log = acho({ types: require('acho-skin-cli') });
Quickstart
const acho = require('acho');
// Initialize the acho logger with the CLI skin types
const log = acho({
types: require('acho-skin-cli')
});
// Use the CLI-specific log types
log.info('Starting CLI process...');
log.success('Operation completed successfully.');
log.warn('A potential issue was detected.');
log.error('An unrecoverable error occurred!');
log.debug('This is a debug message, visible in debug mode.');
// Example of custom log type usage, if supported by acho
// log.customType('Custom message with custom style.');