(experimental) Checks that after build there are no modified files on git.
(experimental) A directory which will contain artifacts to be published to npm.
(experimental) Author's e-mail.
(experimental) Author's name.
(experimental) Author's Organization.
(experimental) Author's URL / Website.
(experimental) Enable and configure the 'auto approve' workflow.
(experimental) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued).
Throw if set to true but autoApproveOptions are not defined.
(experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
Throw if set to true but autoApproveOptions are not defined.
(experimental) Automatically add all executables under the bin directory to your package.json file under the bin section.
(experimental) Configure options for automatic merging on GitHub.
Has no effect if
github.mergify is set to false.
(experimental) Binary programs vended with your module.
You can use this option to add/customize how binaries are represented in
your package.json, but unless autoDetectBin is false, every
executable file under bin will automatically be added to this section.
(experimental) Define a GitHub workflow for building PRs.
(experimental) List of dependencies to bundle into this module.
These modules will be
added both to the dependencies section and peerDependencies section of
your package.json.
The recommendation is to only specify the module name here (e.g.
express). This will behave similar to yarn add or npm install in the
sense that it will add the module as a dependency to your package.json
file with the latest version (^). You can specify semver requirements in
the same syntax passed to npm i or yarn add (e.g. express@^2) and
this will be what you package.json will eventually include.
(experimental) Add a clobber task which resets the repo to origin.
(experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v1 A secret is required for private repos. Configured with @codeCovTokenSecret.
(experimental) Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
(experimental) License copyright owner.
(experimental) The copyright years to put in the LICENSE file.
(experimental) The name of the main release branch.
(deprecated) Include dependabot configuration.
(deprecated) Options for dependabot.
(experimental) Runtime dependencies of this module.
The recommendation is to only specify the module name here (e.g.
express). This will behave similar to yarn add or npm install in the
sense that it will add the module as a dependency to your package.json
file with the latest version (^). You can specify semver requirements in
the same syntax passed to npm i or yarn add (e.g. express@^2) and
this will be what you package.json will eventually include.
(experimental) How to handle dependency upgrades.
(experimental) The description is just a string that helps people understand the purpose of the package.
It can be used when searching for packages in a package manager as well. See https://classic.yarnpkg.com/en/docs/package-json/#toc-description
(experimental) Add a VSCode development environment (used for GitHub Codespaces).
(experimental) Build dependencies for this module.
These dependencies will only be available in your build environment but will not be fetched when this module is consumed.
The recommendation is to only specify the module name here (e.g.
express). This will behave similar to yarn add or npm install in the
sense that it will add the module as a dependency to your package.json
file with the latest version (^). You can specify semver requirements in
the same syntax passed to npm i or yarn add (e.g. express@^2) and
this will be what you package.json will eventually include.
(experimental) Module entrypoint (main in package.json).
Set to an empty string to not include main in your package.json
(experimental) Enable GitHub integration.
Enabled by default for root projects. Disabled for non-root projects.
(experimental) Options for GitHub integration.
(experimental) Additional entries to .gitignore.
(experimental) Add a Gitpod development environment.
(experimental) Package's Homepage / Website.
(experimental) Setup jest unit tests.
(experimental) Jest options.
(experimental) Version requirement of jsii-release which is used to publish modules to npm.
(experimental) Keywords to include in package.json.
(experimental) License's SPDX identifier.
See https://github.com/projen/projen/tree/master/license-text for a list of supported licenses.
Use the licensed option if you want to no license to be specified.
(experimental) Indicates if a license should be added.
(experimental) Configure logging options such as verbosity.
(experimental) Major version to release from the default branch.
If this is specified, we bump the latest version of this major version line. If not specified, we bump the global latest version.
(experimental) Minimum node.js version to require via engines (inclusive).
(deprecated) Whether mergify should be enabled on this repository or not.
(experimental) Options for mergify.
(experimental) Minimum Node.js version to require via package.json engines (inclusive).
(experimental) Automatically update files modified during builds to pull-request branches.
This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged.
Implies that PR builds do not have anti-tamper checks.
(experimental) This is the name of your project.
(experimental) Access level of the npm package.
(experimental) Tags can be used to provide an alias instead of version numbers.
For example, a project might choose to have multiple streams of development and use a different tag for each stream, e.g., stable, beta, dev, canary.
By default, the latest tag is used by npm to identify the current version
of a package, and npm install <pkg> (without any @<version> or @<tag>
specifier) installs the latest tag. Typically, projects only use the
latest tag for stable release versions, and use other tags for unstable
versions such as prereleases.
The next tag is used by some projects to identify the upcoming version.
(deprecated) The host name of the npm registry to publish to.
Cannot be set together with npmRegistryUrl.
(experimental) The base URL of the npm package registry.
Must be a URL (e.g. start with "https://" or "http://")
(experimental) GitHub secret which contains the NPM token to use when publishing packages.
(deprecated) Additional entries to .npmignore.
(experimental) Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
(experimental) The root directory of the project.
Relative to this directory, all files are synthesized.
If this project has a parent, this directory is relative to the parent directory and it cannot be the same as the parent or any of it's other sub-projects.
(experimental) The Node Package Manager used to execute scripts.
(experimental) The "name" in package.json.
(experimental) The parent project, if this project is part of a bigger project.
(experimental) Options for peerDeps.
(experimental) Peer dependencies for this module.
Dependencies listed here are required to
be installed (and satisfied) by the consumer of this library. Using peer
dependencies allows you to ensure that only a single module of a certain
library exists in the node_modules tree of your consumers.
Note that prior to npm@7, peer dependencies are not automatically installed, which means that adding peer dependencies to a library will be a breaking change for your customers.
Unless peerDependencyOptions.pinnedDevDependency is disabled (it is
enabled by default), projen will automatically add a dev dependency with a
pinned version for each peer dependency. This will ensure that you build &
test your module against the lowest peer version required.
(experimental) Steps to execute after build as part of the release workflow.
(experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").
(deprecated) Which type of project this is (library/app).
(experimental) The shell command to use in order to run the projen CLI.
Can be used to customize in special environments.
(experimental) Indicates of "projen" should be installed as a devDependency.
(experimental) Execute projen as the first step of the build task to synthesize project files.
This applies both to local builds and to CI builds.
Disabling this feature is NOT RECOMMENDED and means that manual changes to synthesized project files will be persisted.
(deprecated) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued).
Throw if set to true but autoApproveOptions are not defined.
(experimental) Customize the projenUpgrade schedule in cron expression.
(experimental) Periodically submits a pull request for projen upgrades (executes yarn projen:upgrade).
This setting is a GitHub secret name which contains a GitHub Access Token
with repo and workflow permissions.
This token is used to submit the upgrade pull request, which will likely include workflow updates.
To create a personal access token see https://github.com/settings/tokens
(experimental) Version of projen to install.
(experimental) Generate (once) .projenrc.js (in JavaScript). Set to false in order to disable .projenrc.js generation.
(experimental) Options for .projenrc.js.
(experimental) Generate (once) .projenrc.json (in JSON). Set to false in order to disable .projenrc.json generation.
(experimental) Options for .projenrc.json.
(experimental) Include a GitHub pull request template.
(experimental) The contents of the pull request template.
(experimental) The README setup.
(experimental) Add release management to this project.
(experimental) Defines additional release branches.
A workflow will be created for each
release branch which will publish releases from commits in this branch.
Each release branch must be assigned a major version number which is used
to enforce that versions published from that branch always use that major
version. If multiple branches are used, the majorVersion field must also
be provided for the default branch.
(experimental) Automatically release new versions every commit to one of branches in releaseBranches.
(experimental) Create a github issue on every failed publishing task.
(experimental) The label to apply to issues indicating publish failures.
Only applies if releaseFailureIssue is true.
(experimental) CRON schedule to trigger new releases.
(experimental) Automatically release to npm when new versions are introduced.
(deprecated) DEPRECATED: renamed to release.
(experimental) The name of the default release workflow.
(experimental) A set of workflow steps to execute in order to setup the workflow container.
(experimental) The repository is the location where the actual code for your package lives.
See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
(experimental) If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.
(experimental) npm scripts to include.
If a script has the same name as a standard script, the standard script will be overwritten.
(experimental) Package's Stability.
(experimental) Auto-close of stale issues and pull request.
See staleOptions for options.
(experimental) Auto-close stale issues and pull requests.
To disable set stale to false.
(experimental) Enable VSCode integration.
Enabled by default for root projects. Disabled for non-root projects.
(experimental) Workflow steps to use in order to bootstrap this repo.
(experimental) Container image to use for GitHub workflows.
(experimental) The node version to use in GitHub workflows.
Generated using TypeDoc
(experimental) Allow the project to include
peerDependenciesandbundledDependencies.This is normally only allowed for libraries. For apps, there's no meaning for specifying these.
true