View on GitHub

@ncfour-us/projen-utils Projen contstructs

Useful constructs for building TypeScript projects managed through projen

Download this project as a .zip file Download this project as a tar.gz file

@ncfour-us/projen-utils / RepoBuildPackageModel

Enumeration: RepoBuildPackageModel

The build/packaging model to use for the TypeScriptESMProject.

There are generally two models supported, along with an “escape hatch” to allow individual customization without using the opinionated support provided with this project type.

The two models:

In all cases, “trunk-based” development is presumed as the Git branching/merging strategy.

Enumeration Members

GITHUB_BUILD_PACKAGE

GITHUB_BUILD_PACKAGE: "GITHUB_BUILD_PACKAGE"

Development uses a trunk-based development model.

No direct commits are expect on the main branch which is the development trunk branch.

All new work or updates are done on feature branches in locally cloned or forked repositories. Changes are managed through pull requests to the main branch.

All build/packaging/distribution/publishing is driven through Github actions associated with commits to the trunk (main branch).

A new release is published on each non-“chore(release)” commit to the main branch.

A remote git repository MUST be used which will run the Github actions associated with the repository.

Use the releaseToGithub (default: true) option to configure whether a Github release is created on each release.

The NPM registry (npmjs.com) can be configured as an additional distribution/publishing “target”. Use the releaseToNpm (default: true if repository is set, false otherwise) option to configure.

When using this mode, trusted publishing from Github to NPM MUST be configured and a Github App MUST be defined to allow for background Github actions to run with appropriate credentials.


LOCAL_BUILD_PACKAGE

LOCAL_BUILD_PACKAGE: "LOCAL_BUILD_PACKAGE"

All development/build/packaging/distribution/publishing is driven from a local workstation or cloned repository.

A “local” repository/registry (just a folder on the local system) is the default location to distribute/publish. Use the releaseToLocal (default: true) option to configure. Use the localPackageArchiveDir option to specify the folder location.

A remote git repository can be configured/used and becomes a distribution/publishing “target” for “release” operations. Use the releaseToGithub (default: false) option to configure.

The NPM registry (npmjs.com) can be configured as an additional distribution/publishing “target”. Use the releaseToNpm (default: true if repository is set, false otherwise) option to configure.

When using this mode, the user MUST have active credentials in the local environment for the remote distribution locations when “release” tasks are invoked.


LOCAL_DEV_BUILD_REGISTRY

LOCAL_DEV_BUILD_REGISTRY: "LOCAL_DEV_BUILD_REGISTRY"

All development/build/packaging/distribution/publishing is driven from a local workstation or cloned repository.

A “local” repository/registry (just a folder on the local system) is the default location to distribute/publish. Use the releaseToLocal (default: true) option to configure. Use the localPackageArchiveDir option to specify the folder location.

A remote git repository can be configured/used and becomes a distribution/publishing “target” for “release” operations. Use the releaseToGithub (default: false) option to configure.

The NPM registry (npmjs.com) can be configured as an additional distribution/publishing “target”. Use the releaseToNpm (default: true if repository is set, false otherwise) option to configure.

When using this mode, the user MUST have active credentials in the local environment for the remote distribution locations when “release” tasks are invoked.

Deprecated

use LOCAL_BUILD_PACKAGE


SKIP_SETUP

SKIP_SETUP: "SKIP_SETUP"

Skip any build/release configuration that is offered by the TypeScriptESMProject component

This is an “escape hatch” to allow the project to define it’s own customizations/configuration for build/packaging and distribution/publishing