subpkg

4.1.0 • Public • Published

subpkg

npm version

subpkg is a roughly API-compatible implementation of subpackage which has zero dependencies and trades support for environment variables for several additional features like linking and version bumping. subpkg allows you to run scripts defined in package.json across multiple sub-projects and serves as a minimal alternative to Lerna or pnpm's support for 'workspaces'.

Usage

$ npm install --save-dev subpkg
{
    "name": "my-awesome-project",
    "version": "2.5.1",
    "subPackages": [
        "packages/sub-package-1",
        "packages/sub-package-2"
    ],
    "scripts": {
      "postinstall": "subpkg install && ...",
      "build": "subpkg run build && ..."
    }
}

Dynamic modules

{
    "name": "my-awesome-project",
    "version": "2.5.1",
    "subPackages": {
        "dirA" : "packagesA.json",
        "dirB" : "packagesB.json"
    },
    "scripts": {
      "postinstall": "subpkg install && ...",
      "build": "subpkg run build && ..."
    }
}

Where packagesA.json is a JSON file specifying active/inactive packages in the directory dirA and both dirA and packagesA.json are paths relative to root directory:

{
    "sub-package-1": true,
    "sub-package-2": true,
    "sub-package-3": false,
}

Modules set to false will not be taken into account.

Laravel Modules

This feature allows for seamless integration with the nWidart/laravel-modules project:

{
    "name": "my-awesome-project",
    "version": "2.5.1",
    "subPackages": {
        "modules" : "modules_statuses.json"
    }
}

License

subpkg is distributed under the terms of the MIT License.

Package Sidebar

Install

npm i subpkg

Weekly Downloads

145

Version

4.1.0

License

MIT

Unpacked Size

9.87 kB

Total Files

5

Last publish

Collaborators

  • kjscheibo