Skip to main content

config

@tramvai/cli requires that in the project root should exists config file named tramvai.json. This config should define projects that @tramvai/cli should handle.

config file format​

{
"projects": {
"react-app": {
"name": "new-app",
"root": "src",
"type": "application"
// other options
}
}
}
  • projects - map of the projects that resides in the current repository. @tramvai/cli supports many apps and packages inside single repository (so called monorepo concept).

JSON schema validation and autocomplete in IDEs​

Link to the actual json schema for the tramvai.json is ./node_modules/@tramvai/cli/schema.json

The most simple way to add config validation and autocomplete is to add schema through field $schema inside tramvai.json:

{
"$schema": "./node_modules/@tramvai/cli/schema.json",
"projects": {}
}

Another way is to add schema to the IDE settings:

How to add schema to the JetBrains IDE you can find in the official docs. You also need to set tramvai.json as file path pattern in settings.

How to add schema to the VSCode you can find in the official docs

New projects generated by tramvai new command already has field $schema in their tramvai.json config.

Available options​

polyfill​

Path to the polyfill file with all of the required polyfills. By default, file postcss.config.js is used if it exists, otherwise polyfill bundle will not be generated

output​

Specifies paths for the generated bundles.

For type: application it's an object, and for other types it's a single string.

serverApiDir​

Path to folder with papi handlers

sourceMap​

If sourcemaps are enabled

fileSystemPages​

See FileSystemPages doc

splitChunks​

Configure the options on webpack splitChunks

define​

Replaces passed strings with passed values in the build time for different environments

postcss​

Postcss settings

config​

Path to the postcss.config file

cssLocalIdentName​

Specifies identifier for the css class names

hotRefresh​

React hot-refresh

dedupe​

Controls the deduplication plugin

svgo​

svgo-loader options

imageOptimization​

Config for the process of the image optimizations

options​

For the detailed settings see

cssMinimize​

Set minimizer for css

webpack​

Webpack specific settings

resolveAlias​

Browser package resolve aliases. E.g. { "stream": "stream-browserify" }

provide​

Browser packages to provide with ProvidePlugin. E.g. { "Buffer": ["buffer", "Buffer"] }

checkAsyncTs​

Configuration for fork-ts-checker-webpack-plugin

threadLoader​

Config for the multithread build process (https://webpack.js.org/loaders/thread-loader/).

notifications​

Control the build notifications that are showed during development

experiments​

See experiments doc

Add new config parameters​

Config parameters for the @tramvai/cli are stored as TypeScript interface from which JSON Schema is generating. This schema is used for the config validation and applying config defaults, thanks to the library ajv.