@corex/ywc

- commands : string[]

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@corex/ywc
3.0.61110 months ago4 years agoMinified + gzip package size for @corex/ywc in KB

Readme

--- title: '@corex/ywc'

customediturl: 'https://github.com/iamvishnusankar/corex/edit/master/packages/ywc/README.md'

Local Automator for yarn workspaces. Yarn-Workspace-Commands lets you to run a set of commands for local dev/ci build on all workspace packages folder.

Options

  • commands : string

  • excludePrivatePackages : boolean

Basic Usage

Install package on workspace root
yarn add @corex/ywc -D -W

Define commands ywc.config.json
{
    "[command_key]": {

         /* Array of commands to execute */
        "commands": "string[]",

        /* Execute only on root folder. Default : false */
        "rootCommand": "boolean"
    }
}

Execute
# command_key defined in ywc.config.json
yarn ywc <command_key>

Detailed Setup Instructions

  1. Setup Yarn Workspace

For further info on setting up yarn workspace : Setting Up Yarn Workspace
{
  "private": true,
  "workspaces": ["packages/*", "app/*"]
}

or
{
  "private": true,
  "workspaces": {
    "packages": ["packages/*", "app/*"],
    "nohoist": []
  }
}

  1. Install Package

yarn add @corex/ywc -D -W

  1. Create ywc.config.json in workspace root

Set rootCommand : true to make the commands run only on root folder.
{
  "test_command_1": {
    "commands": [
      "echo command 1",
      "echo command 2",
      "echo command 3",
      "echo command 4"
    ]
  },
  "test_command_2": {
    "commands": ["echo command 5", "ls"]
  },
  "test_command_3": {
    "commands": ["yarn test_root_command"],
    "rootCommand": true
  }
}

  1. Add script to package.json in workspace root

{
  "scripts": {
    "test_ywc": "ywc test_command_1 test_command_2 test_command_3",
    "test_root_command": "echo hello world root command"
  }
}

  1. Run the commands

yarn test_ywc

Practical Example

If you have a yarn workspace and want to perform a clean build of all local packages after the installation of new modules.
  • Add the following to ywc.config.json

```json {
"build": {
  "commands": ["yarn build"]
},
"clean": {
  "commands": ["rm -rf dist", "rm -rf build"]
}
} ```
  • Add the following script to package.json in workspace root

```json {
"scripts": {
  "postinstall": "ywc clean build"
}
} ```

Environment Variables

Since the command execution is taking place under node environment, All environment variables available to process.env can be used as inline arguments.
Example : Package versioning
  • ywc.config.json

```json {
"test-env": {
  "commands": ["echo ${NODE_ENV} ${NODE}"]
},
"set-version": {
  "commands": ["npm version --no-git-tag-version ${BUILD_BUILDNUMBER}"]
}
} ```
  • Add the set version script to package.json

```json {
"scripts": {
  "set-version": "ywc set-version"
}
} ```
  • Run the command to update version of all packages
```json yarn set-version ```