Optional
Readonly
allowAllow the project to include peerDependencies
and bundledDependencies
.
This is normally only allowed for libraries. For apps, there's no meaning
for specifying these.
Optional
Readonly
artifactsA directory which will contain build artifacts.
Optional
Readonly
authorAuthor's e-mail.
Optional
Readonly
authorAuthor's name.
Optional
Readonly
authorIs the author an organization.
Optional
Readonly
authorAuthor's URL / Website.
Optional
Readonly
autoEnable and configure the 'auto approve' workflow.
Optional
Readonly
autoAutomatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
Throw if set to true but autoApproveOptions
are not defined.
Optional
Readonly
autoAutomatically add all executables under the bin
directory to your package.json
file under the bin
section.
Optional
Readonly
autoEnable automatic merging on GitHub.
Has no effect if github.mergify
is set to false.
Optional
Readonly
autoConfigure options for automatic merging on GitHub.
Has no effect if
github.mergify
or autoMerge
is set to false.
Optional
Readonly
binBinary 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.
Optional
Readonly
bugsThe email address to which issues should be reported.
Optional
Readonly
bugsThe url to your project's issue tracker.
Optional
Readonly
buildDefine a GitHub workflow for building PRs.
Optional
Readonly
buildOptions for PR build workflow.
Optional
Readonly
bundledList of dependencies to bundle into this module.
These modules will be
added both to the dependencies
section and bundledDependencies
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.
Optional
Readonly
bundlerOptions for Bundler
.
Optional
Readonly
checkConfigure which licenses should be deemed acceptable for use by dependencies. This setting will cause the build to fail, if any prohibited or not allowed licenses ares encountered.
Optional
Readonly
clobberAdd a clobber
task which resets the repo to origin.
Optional
Readonly
codeOptions for npm packages using AWS CodeArtifact. This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact
Optional
Readonly
codeDefine a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with @codeCovTokenSecret
.
Optional
Readonly
codeDefine the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
Optional
Readonly
commitWhether to commit the managed files by default.
Optional
Readonly
copyrightLicense copyright owner.
Optional
Readonly
copyrightThe copyright years to put in the LICENSE file.
Optional
Readonly
defaultThe name of the main release branch.
Optional
Readonly
dependabotUse dependabot to handle dependency upgrades.
Cannot be used in conjunction with depsUpgrade
.
Optional
Readonly
dependabotOptions for dependabot.
Optional
Readonly
depsRuntime 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.
Optional
Readonly
depsUse tasks and github workflows to handle dependency upgrades.
Cannot be used in conjunction with dependabot
.
Optional
Readonly
depsOptions for UpgradeDependencies
.
Optional
Readonly
descriptionThe 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
Optional
Readonly
devAdd a VSCode development environment (used for GitHub Codespaces).
Optional
Readonly
devBuild 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.
Optional
Readonly
disableDo not generate a tsconfig.json
file (used by jsii projects since tsconfig.json is generated by the jsii compiler).
Optional
Readonly
disableDo not generate a tsconfig.dev.json
file.
Optional
Readonly
docgenDocgen by Typedoc.
Optional
Readonly
docsDocs directory.
Optional
Readonly
entrypointModule entrypoint (main
in package.json
).
Set to an empty string to not include main
in your package.json
Optional
Readonly
entrypointThe .d.ts file that includes the type declarations for this module.
Optional
Readonly
eslintSetup eslint.
Optional
Readonly
eslintEslint options.
Optional
Readonly
gitConfiguration options for .gitignore file.
Optional
Readonly
gitConfiguration options for git.
Optional
Readonly
githubEnable GitHub integration. Enabled by default for root projects. Disabled for non-root projects.
Optional
Readonly
githubOptions for GitHub integration.
Optional
Readonly
gitignoreAdditional entries to .gitignore.
Optional
Readonly
gitpodAdd a Gitpod development environment.
Optional
Readonly
homepagePackage's Homepage / Website.
Optional
Readonly
jestSetup jest unit tests.
Optional
Readonly
jestJest options.
Optional
Readonly
jsiiVersion requirement of publib
which is used to publish modules to npm.
Optional
Readonly
keywordsKeywords to include in package.json
.
Optional
Readonly
libdirTypescript artifacts output directory.
Optional
Readonly
licenseLicense's SPDX identifier.
See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses.
Use the licensed
option if you want to no license to be specified.
Optional
Readonly
licensedIndicates if a license should be added.
Optional
Readonly
loggingConfigure logging options such as verbosity.
Optional
Readonly
majorMajor 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.
Optional
Readonly
maxMinimum node.js version to require via engines
(inclusive).
Optional
Readonly
minMinimal Major version to release. This can be useful to set to 1, as breaking changes before the 1.x major release are not incrementing the major version number.
Can not be set together with majorVersion
.
Optional
Readonly
minMinimum Node.js version to require via package.json engines
(inclusive).
Readonly
nameThis is the name of your project.
Optional
Readonly
npmAccess level of the npm package.
Optional
Readonly
npmThe npmDistTag to use when publishing from the default branch.
To set the npm dist-tag for release branches, set the npmDistTag
property
for each branch.
Optional
Readonly
npmConfiguration options for .npmignore file.
Optional
Readonly
npmShould provenance statements be generated when the package is published. A supported package manager is required to publish a package with npm provenance statements and you will need to use a supported CI/CD provider.
Note that the projen Release
and Publisher
components are using publib
to publish packages,
which is using npm internally and supports provenance statements independently of the package manager used.
Optional
Readonly
npmThe base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://")
Optional
Readonly
npmGitHub secret which contains the NPM token to use when publishing packages.
Optional
Readonly
npmignoreDefines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
Optional
Readonly
outdirThe 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 subprojects.
Optional
Readonly
packageDefines a package
task that will produce an npm tarball under the artifacts directory (e.g. dist
).
Optional
Readonly
packageThe Node Package Manager used to execute scripts.
Optional
Readonly
packageThe "name" in package.json.
Optional
Readonly
parentThe parent project, if this project is part of a bigger project.
Optional
Readonly
peerOptions for peerDeps
.
Optional
Readonly
peerPeer 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.
Optional
Readonly
pnpmThe version of PNPM to use if using PNPM as a package manager.
Optional
Readonly
postSteps to execute after build as part of the release workflow.
Optional
Readonly
prereleaseBump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").
Optional
Readonly
prettierSetup prettier.
Optional
Readonly
prettierPrettier options.
Optional
Readonly
projenThe shell command to use in order to run the projen CLI. Can be used to customize in special environments.
Optional
Readonly
projenChoose a method of providing GitHub API access for projen workflows.
Optional
Readonly
projenIndicates of "projen" should be installed as a devDependency.
Optional
Readonly
projenVersion of projen to install.
Optional
Readonly
projenrcGenerate (once) .projenrc.js (in JavaScript). Set to false
in order to disable .projenrc.js generation.
Optional
Readonly
projenrcOptions for .projenrc.js.
Optional
Readonly
projenrcGenerate (once) .projenrc.json (in JSON). Set to false
in order to disable .projenrc.json generation.
Optional
Readonly
projenrcOptions for .projenrc.json.
Optional
Readonly
projenrcUse TypeScript for your projenrc file (.projenrc.ts
).
Optional
Readonly
projenrcOptions for .projenrc.ts.
Optional
Readonly
publishInstead of actually publishing to package managers, just print the publishing command.
Optional
Readonly
publishDefine publishing tasks that can be executed manually as well as workflows. Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity.
Optional
Readonly
pullInclude a GitHub pull request template.
Optional
Readonly
pullThe contents of the pull request template.
Optional
Readonly
readmeThe README setup.
Optional
Readonly
releasableFind commits that should be considered releasable Used to decide if a release is required.
Optional
Readonly
releaseAdd release management to this project.
Optional
Readonly
releaseDefines 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.
Optional
Readonly
releaseCreate a github issue on every failed publishing task.
Optional
Readonly
releaseThe label to apply to issues indicating publish failures.
Only applies if releaseFailureIssue
is true.
Optional
Readonly
releaseAutomatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. Note: this prefix is used to detect the latest tagged version when bumping, so if you change this on a project with an existing version history, you may need to manually tag your latest release with the new prefix.
Optional
Readonly
releaseAutomatically release to npm when new versions are introduced.
Optional
Readonly
releaseThe release trigger to use.
Optional
Readonly
releaseThe name of the default release workflow.
Optional
Readonly
releaseA set of workflow steps to execute in order to setup the workflow container.
Optional
Readonly
renovatebotUse renovatebot to handle dependency upgrades.
Optional
Readonly
renovatebotOptions for renovatebot.
Optional
Readonly
repositoryThe repository is the location where the actual code for your package lives. See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
Optional
Readonly
repositoryIf 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.
Optional
Readonly
sampleGenerate one-time sample in src/
and test/
if there are no files there.
Optional
Readonly
scopedOptions for privately hosted scoped packages.
Optional
Readonly
srcdirTypescript sources directory.
Optional
Readonly
stabilityPackage's Stability.
Optional
Readonly
staleAuto-close of stale issues and pull request.
See staleOptions
for options.
Optional
Readonly
staleAuto-close stale issues and pull requests.
To disable set stale
to false
.
Optional
Readonly
testdirJest tests directory. Tests files should be named xxx.test.ts
.
If this directory is under srcdir
(e.g. src/test
, src/__tests__
),
then tests are going to be compiled into lib/
and executed as javascript.
If the test directory is outside of src
, then we configure jest to
compile the code in-memory.
Optional
Readonly
tsOptions for ts-jest.
Optional
Readonly
tsconfigCustom TSConfig.
Optional
Readonly
tsconfigTypescriptConfigExtends to use as base.
Optional
Readonly
tsconfigCustom tsconfig options for the development tsconfig.json file (used for testing).
Optional
Readonly
tsconfigThe name of the development tsconfig.json file.
Optional
Readonly
typescriptTypeScript version to use.
NOTE: Typescript is not semantically versioned and should remain on the
same minor, so we recommend using a ~
dependency (e.g. ~1.2.3
).
Optional
Readonly
unbuildUse unbuild for bundling/transpiling.
Optional
Readonly
versionrcCustom configuration used when creating changelog with standard-version package. Given values either append to default configuration or overwrite values in it.
Optional
Readonly
vscodeEnable VSCode integration. Enabled by default for root projects. Disabled for non-root projects.
Optional
Readonly
workflowWorkflow steps to use in order to bootstrap this repo.
Optional
Readonly
workflowContainer image to use for GitHub workflows.
Optional
Readonly
workflowThe git identity to use in workflows.
Optional
Readonly
workflowThe node version to use in GitHub workflows.
Optional
Readonly
workflowEnable Node.js package cache in GitHub workflows.
Optional
Readonly
workflowGithub Runner selection labels.
Optional
Readonly
workflowGithub Runner Group selection options.
Optional
Readonly
workspaceDependencies linked by the workspace
protocol.
Optional
Readonly
yarnOptions for Yarn Berry.
TypeScriptProjectOptions