1.0.11 • Published 6 years ago

yarn-workspace-commands v1.0.11

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

yarn-workspace-commands npm

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.

Basic Usage

Install package on workspace root

yarn add yarn-workspace-commands -D -W

Define commands ywc.config.json

{
    "[command_key]": {

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

        /* Execute in parallel mode. Default : false */
        "parallel": "boolean",

        /* 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 yarn-workspace-commands -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
1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago