Giter Site home page Giter Site logo

buildpacks-pnpm's Introduction

Buildpack for Pnpm

The Pnpm CNB provides the Pnpm Package manager. The buildpack installs pnpm onto the $PATH which makes it available for subsequent buildpacks and/or in the final running container. An example of buildpack that might use pnpm is the Pnpm Install CNB

Integration

The Pnpm CNB provides pnpm as dependency. Downstream buildpacks, like Pnpm Install CNB can require the pnpm dependency by generating a Build Plan TOML file that looks like the following:

[[requires]]
  name = "pnpm"

  # The Pnpm buildpack supports some non-required metadata options.
  [requires.metadata]

    # The version of the Pnpm dependency is not required. In the case it
    # is not specified, the buildpack will provide the default version, which can
    # be seen in the buildpack.toml file.
    # If you wish to request a specific version, the buildpack supports
    # specifying a semver constraint in the form of "8.*", "8.15.*", or even
    # "8.15.3".
    version = "8.15.3"

    # Setting the build flag to true will ensure that the pnpm
    # depdendency is available on the $PATH for subsequent buildpacks during
    # their build phase. If you are writing a buildpack that needs to run pnpm
    # during its build process, this flag should be set to true.
    build = true

    # Setting the launch flag to true will ensure that the pnpm
    # dependency is available on the $PATH for the running application. If you are
    # writing an application that needs to run pnpm at runtime, this flag should
    # be set to true.
    launch = true

Usage

To package this buildpack for consumption:

$ ./scripts/package.sh --version <version-number>

This will create a buildpackage.cnb file under the build directory which you can use to build your app as follows:

pack build <app-name> \
  --path <path-to-app> \
  --buildpack <path/to/node-engine.cnb> \
  --buildpack build/buildpackage.cnb \
  --buildpack <path/to/cnb-that-requires-node-and-pnpm>

Though the API of this buildpack does not require node, pnpm is unusable without node.

Run Tests

To run all unit tests, run:

./scripts/unit.sh

To run all integration tests, run:

/scripts/integration.sh

buildpacks-pnpm's People

Contributors

taylorono avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.