| sidebar_position | 0 |
|---|
The DeviceScript command line (CLI) allows to compile and debug programs from your favorite IDE. The CLI also also usable within containers (Docker, GitHub Codespaces, CodeSandbox, ...).
- install Node.JS 18+
- install the CLI
npm install @devicescript/cli@latest --save-devThe command tool is named devicescript or devs for short.
The full list of options for each command is available through the CLI by running devs help <command>.
The init commands creates or updates the necessary files to get syntax completion
and checking in DeviceScript project (typically from Visual Studio Code).
devs init myprojectThe command will create the files under myproject. A device script project will look as follows:
.devicescript/ reserved folder for devicescript generated files
package.json projet configuration
devsconfig.json configure the DeviceScript compiler with additional flags,
also used by VSCode extension to activate.
src/ directory for DeviceScript sources
src/main.ts usual name for your entry point application
src/tsconfig.json configure the TypeScript compiler to compile DeviceScript syntax
...
:::note
Make sure to keep the devsconfig.json file even if it is empty.
It is used as a marker to activate the Visual Studio Code extension.
:::
By default, init will not override existing tsconfig.json. Using this flag, you can override this setting
and force refreshing that file.
devs init --forceDo not run npm or yarn install after dropping the files.
The generated project by init is barebone by design. The add command can be used to
update the project with extra features. Each add command may require additional arguments.
Configures the project to add DeviceScript unit tests.
devs add testConfigures the project to add a custom device configuration (board).
devs add boardConfigures the project to add custom services.
devs add serviceConfigures the project to add a Node.JS subproject that runs simulated devices.
devs add simPrepre the project to be published to npm.js as a library.
devs add npmThe build command compiles the entry point file from the current project
using the resolution rules in tsconfig.json. It is the default command.
devs buildThe command line will automatically compile markdown files under the services folder (./services/*.md)
into TypeScript client definition in node_modules/@devicescript/core/src/services.d.ts.
The --stats flag enables printing additional debugging information about code size,
and other useful metrics.
devs build --statsThe devtools command launches the developer tool server, without trying to build a project.
devs devtoolsTo automatically rebuild your program based on file changes, add the file name.
devs devtools main.tsWhen the build is run in watch mode, it also opens a developer tool web server that allows to execute the compiled program in a simulator or physical devices. Follow the console application instructions to open the web page.
stateDiagram-v2
direction LR
sources
cli: CLI\n(compiler + web server)
browser: Dev Tools\n(browser)
sim: Simulator
dev: Hardware Device
cli --> sources: watch files
cli --> browser: bytecode
browser --> sim
browser --> dev: WebSerial, WebUsb, ...
To access the developer tools outside localhost, add --internet
devs devtools --internetCommand to flash the DeviceScript firmware onto a physical device. There are dedicated documentation pages to support various MCU architectures.