npm

@corex/ywc
TypeScript icon, indicating that this package has built-in type declarations

3.0.611 • Public • Published

title: '@corex/ywc' custom_edit_url: '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": []
  }
}

2. Install Package

yarn add @corex/ywc -D -W

3. 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
  }
}

4. 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"
  }
}

5. 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

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

    {
      "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

    {
      "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

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

    yarn set-version

Readme

Keywords

none

Package Sidebar

Install

npm i @corex/ywc

Weekly Downloads

234

Version

3.0.611

License

MIT

Unpacked Size

20 kB

Total Files

51

Last publish

Collaborators

  • iamvishnusankar