This package has been deprecated

Author message:

Please use 'npm i mhy -g'

@mhy/config

0.19.9 • Public • Published

WARNING!

This documentation is not complete. It's in progress and it's a BETA version. Use the tool at your own risk.

@mhy/config

This lib is a collection of all configuration and UI panels (ecosystem) @mhy uses.

Config

Load configuration based on the current environment from folders (see repo) and/or from a project's package.json file. The final object structure is being represented in the directory/package.json structure. (see repo)

Config options are being separated into environments. By default @mhy uses root (always used), development and production.

Examples

// Dir structure
foo
  index.js
  development
      bar.js => exports 1
  production
      baz.js => exports 2
  root
      fip.js => exports 3

API

import { load } from '@mhy/config'

load('foo')

CLI

mhy config foo

Output

{
    bar: 1,
    fip: 3
}
*/

baz is missing because development env is default thus it's not being loaded.

Defining env

// *nix
NODE_ENV=production mhy config foo

// Windows
set NODE_ENV=production&& mhy config foo // not a typo, no space needed there!

CLI

It'll return the configuration object being used from @mhy/config.

// Print out config
mhy config webpack

// Print out config in different format
mhy config babel -f json
mhy config babel --format=json

// Print out config in different format and save into a file
mhy config babel -f json >> .babelrc

Custom overrides

using files/folders

Structure

webpack
  development
     devServer.js

devServer.js file

module.exports = (defaults) => ({
    ...defaults,
    host: 'my-host.com'
})

Using package.json

package.json file

{
    ...
    "mhy" {
       "webpack": {
           "development": {
               "devServer": {
                   "host": "my-host.com"
               }
           }
       }
    }
    ...
}

Flow

  1. Load root config from package dir/files.
  2. Load env config from package dir/files.
  3. Load root config from project package.json.
  4. Load env config from project package.json.

UI

UIs are basically built-in ecosystem tasks. You can run all of them at once or separately.

// Run ecosystem (ui) (default)
mhy
mhy ui

// Run specific ui process only
mhy webpack-dev-server
mhy run webpack-dev-server

// Run specific process only with specific task
mhy jest watch
mhy run jest watch

Navigation with-in UI

  • Tab change active panel
  • Left/Right arrow select action
  • Enter run selected action
  • Up/Down arrow scroll up/down in the selected panel

UI Panels

By default the following panels are enabled when you simply run mhy:

  • jest
  • storybook-start
  • webpack-dev-server
  • tsc

Disabled by default:

  • prettier webpack-dev-server already handles it, but it can be useful to run it before pushing commits and such.

However, you can can explicitly enable/disable panels in package.json per environment, or explicitly tell which panels to run in CLI.

mhy ui prettier storybook-start

Enabling panels

"mhy": {
    "ui": {
        "root": {
            "enabled": [
                "prettier"
            ]
        }
    }
}

Disabling panels

"mhy": {
    "ui": {
        "root": {
            "disabled": [
                "tsc"
            ]
        }
    }
}

Readme

Keywords

none

Package Sidebar

Install

npm i @mhy/config

Weekly Downloads

66

Version

0.19.9

License

MIT

Unpacked Size

198 kB

Total Files

128

Last publish

Collaborators

  • wintercounter