---
sidebar_position: 5
---

# Project Config

The project config resides in the `wails.json` file in the project directory. The structure of the config is:

```json
{
    "name": "[The project name]",
	"assetdir": "[Relative path to the directory containing the compiled assets, this is normally inferred and could be left empty]",
	"reloaddirs": "[Additional directories to trigger reloads (comma separated), this is only used for some advanced asset configurations]",
	"frontend:install": "[The command to install node dependencies, run in the frontend directory - often `npm install`]",
	"frontend:build": "[The command to build the assets, run in the frontend directory - often `npm run build`]",
	"frontend:dev": "[This command is the dev equivalent of frontend:build. If not specified falls back to frontend:build]",
	"frontend:dev:watcher": "[This command is run in a separate process on `wails dev`. Useful for 3rd party watchers]",
    "wailsjsdir": "[Relative path to the directory that the auto-generated JS modules will be created]",
	"version": "[Project config version]",
	"outputfilename": "[The name of the binary]",
	"debounceMS": 100, // The default time the dev server waits to reload when it detects a vhange in assets
	"devserverurl": "[URL to the dev server serving local assets. Default: http://localhost:34115]",
	"appargs": "[Arguments passed to the application in shell style when in dev mode]"

}
```

This file is read by the Wails CLI when running `wails build` or `wails dev`.

The `assetdir`, `reloaddirs`, `wailsjsdir`, `debounceMS` and `devserverurl` flags in `wails build/dev` will update the project config
and thus become defaults for subsequent runs.