GitHub

jsrepo-build-config.json

Configuration for your registry.

jsrepo-build-config.json holds the configuration for your registry.

You can create a jsrepo-build-config.json by running the init command with the --registry flag:

npx jsrepo init --registry

$schema

$schema is tracked with the cli so you can use a specific version using unpkg:

{ "$schema": "https://unpkg.com/jsrepo@1.27.0/schemas/registry-config.json" }

dirs

dirs is a list of the directories that contain your block categories.

{ "dirs": [ "./src", "./blocks" ] }

outputDir

outputDir is an optional key that allows you to copy the resulting jsrepo-manifest.json and any required files to a custom directory.

This is useful if you want to host the registry in a different location from where the code actually lives. (This should NOT be used when hosting your registry from a git repository)

{ "outputDir": "./static/new-york" }

listBlocks

listBlocks is a list of block names that should be listed when the user runs the add command.

{ "listBlocks": [ "utils" ] }

listCategories

listCategories is a list of category names that should be listed when the user runs the add command.

{ "listCategories": [ "utils" ] }

doNotListBlocks

doNotListBlocks is a list of block names that shouldn't be listed when the user runs the add command.

{ "doNotListBlocks": [ "utils" ] }

doNotListCategories

doNotListCategories is a list of category names that shouldn't be listed when the user runs the add command.

{ "doNotListCategories": [ "utils" ] }

excludeDeps

excludeDeps allows you to prevent specified remote dependencies from being installed when the user adds/updates blocks. This is useful for framework specific API's like React or Svelte.

{ "excludeDeps": [ "svelte", "react", "vue" ] }

includeBlocks

includeBlocks allows you to only include specified blocks in the final manifest file. Keep in mind that if these blocks are referenced by other blocks that are included then your build will break.

{ "includeBlocks": [ "ui", "hooks" ] }

includeCategories

includeCategories allows you to only include specified categories in the final manifest file. Keep in mind that if these categories are referenced by other categories that are included then your build will break.

{ "includeCategories": [ "components", "utils" ] }

excludeBlocks

excludeBlocks allows you to prevent the specified blocks from being included in the manifest.

{ "excludeBlocks": [ "domain" ] }

excludeCategories

excludeCategories allows you to prevent the specified categories from being included in the manifest.

{ "excludeCategories": [ "INTERNAL" ] }

preview

preview displays a preview of the blocks list.

{ "preview": false }

rules

rules allows you to configure the rules when checking the manifest file after build.

Below are the default settings for each rule.

{ "rules": { "no-category-index-file-dependency": "warn", "no-unpinned-dependency": "warn", "require-local-dependency-exists": "error", "max-local-dependencies": ["warn", 10], "no-circular-dependency": "error", "no-unused-block": "warn", "no-framework-dependency": "warn", } }
no-category-index-file-dependency

Disallow depending on the index file of a category.

no-unpinned-dependency

Require all dependencies to have a pinned version.

require-local-dependency-exists

Require all local dependencies to exist.

max-local-dependencies

Enforces a limit on the amount of local dependencies a block can have.

no-circular-dependency

Disallow circular dependencies.

no-unused-block

Disallow unused blocks. (Not listed and not a dependency of another block)

no-framework-dependency

Disallow frameworks (Svelte, Vue, React) as dependencies.