# BuildingBuilding the project is not usually needed for local development.However, for exports to WPT, NodeJS, [or deployment](https://gpuweb.github.io/cts/),files can be pre-generated.## Build typesThe project can be built several different ways, each with a different output directory:### 0. on-the-fly builds (no output directory)Use `npm run start` to launch a server that live-compiles everything as needed.Use `tools/run_node` and other tools to run under `ts-node` which compiles at runtime.### 1. `out` directory**Built with**: `npm run standalone`**Serve locally with**: `npx grunt serve`**Used for**: Static deployment of the CTS, primarily for [gpuweb.github.io/cts](https://gpuweb.github.io/cts/).### 2. `out-wpt` directory**Built with**: `npm run wpt`**Used for**: Deploying into [Web Platform Tests](https://web-platform-tests.org/). See [below](#export-to-wpt) for more information.Contains:- An adapter for running WebGPU CTS tests under WPT- A copy of the needed files from `out/`- A copy of any `.html` test cases from `src/`### 3. `out-node` directory**Built with**: `npm run node`**Used for**: Running NodeJS tools, if you want to specifically avoid the live-compilation overhead of the `tools/` versions, or are running on a deployment which no longer has access to `ts-node` (which is a build-time dependency). For example:- `node out-node/common/runtime/cmdline.js` ([source](../src/common/runtime/cmdline.ts)) - A command line interface test runner- `node out-node/common/runtime/server.js` ([source](../src/common/runtime/server.ts)) - An HTTP server for executing CTS tests with a REST interface## TestingTo build and run all pre-submit checks (including type and lint checks andunittests), use:```shnpm test```For checks only:```shnpm run check```## Export to WPTRun `npm run wpt`.Copy (or symlink) the `out-wpt/` directory as the `webgpu/` directory in yourWPT checkout or your browser's "internal" WPT test directory.