mirror of
https://github.com/lowdefy/lowdefy.git
synced 2024-12-09 05:41:08 +08:00
139 lines
6.1 KiB
Markdown
139 lines
6.1 KiB
Markdown
# Lowdefy CLI
|
|
|
|
The Lowdefy CLI is used to develop a Lowdefy app locally, and to build Lowdefy apps for deployment.
|
|
|
|
We recommend running the CLI using `npx`, to always use the latest version:
|
|
|
|
```
|
|
npx lowdefy@latest <command>
|
|
```
|
|
|
|
or, to use a specific version:
|
|
|
|
```
|
|
npx lowdefy@version <command>
|
|
```
|
|
|
|
Alternative, you can install the CLI globally or to a npm project (with a `package.json` file) via npm or yarn.
|
|
|
|
To install the CLI globally run:
|
|
|
|
```
|
|
npm install lowdefy -g
|
|
```
|
|
|
|
The CLI can then be run using `lowdefy` as the executable name:
|
|
|
|
```
|
|
lowdefy <command>
|
|
```
|
|
|
|
# CLI commands
|
|
|
|
## build
|
|
|
|
The `build` command runs a Lowdefy build. The options are:
|
|
|
|
- `--base-directory <base-directory>`: Change base directory. The default is the current working directory.
|
|
- `--blocks-server-url <blocks-server-url>`: The URL from where Lowdefy blocks will be served.
|
|
- `--disable-telemetry`: Disable telemetry.
|
|
- `--output-directory <output-directory>`: Change the directory to which build artifacts are saved. The default is `<base-directory>/.lowdefy/build`.
|
|
- `--ref-resolver <ref-resolver-function-path>`: Path to a JavaScript file containing a `_ref` resolver function to be used as the app default `_ref` resolver.
|
|
|
|
## build-netlify
|
|
|
|
The `build-netlify` command creates a production build for the [Netlify](https://www.netlify.com) web hosting service. It is designed to run as the Netlify build command.
|
|
|
|
We recommend setting the build command to `npx lowdefy@latest build-netlify`. The Netlify publish directory should be set to `.lowdefy/publish`, and the functions directory set to `.lowdefy/functions`.
|
|
|
|
- `--base-directory <base-directory>`: Change base directory. The default is the current working directory (The base directory should rather be configured in the Netlify build settings).
|
|
- `--blocks-server-url <blocks-server-url>`: The URL from where Lowdefy blocks will be served.
|
|
- `--disable-telemetry`: Disable telemetry.
|
|
- `--ref-resolver <ref-resolver-function-path>`: Path to a JavaScript file containing a `_ref` resolver function to be used as the app default `_ref` resolver.
|
|
|
|
## clean-cache
|
|
|
|
The Lowdefy CLI caches block metadata, and build and server scripts in the `.lowdefy/cache` directory. These cached files can be removed using the `clean-cache` command.
|
|
|
|
- `--base-directory <base-directory>`: Change base directory. The default is the current working directory.
|
|
- `--disable-telemetry`: Disable telemetry.
|
|
|
|
## dev
|
|
|
|
The `dev` command starts a Lowdefy development server, running locally. It can be accessed in a browser at [http://localhost:3000](http://localhost:3000). The CLI watches the file system, and rebuilds the app and reloads served pages every time a change is made to any of the files in the project directory.
|
|
|
|
- `--base-directory <base-directory>`: Change base directory. The default is the current working directory.
|
|
- `--blocks-server-url <blocks-server-url>`: The URL from where Lowdefy blocks will be served.
|
|
- `--disable-telemetry`: Disable telemetry.
|
|
- `--port <port>`: Change the port the server is hosted at. The default is `3000`.
|
|
- `--ref-resolver <ref-resolver-function-path>`: Path to a JavaScript file containing a `_ref` resolver function to be used as the app default `_ref` resolver.
|
|
- `--watch <paths...>`: A list of paths to files or directories that should be watched for changes.
|
|
- `--watch-ignore <patterns...>`: A list of paths to files or directories that should be ignored by the file watcher. Globs are supported.
|
|
|
|
#### Examples
|
|
|
|
Run the dev server, watching a relative directory for file changes:
|
|
|
|
```txt
|
|
npx lowdefy@latest dev --watch ../other-project
|
|
```
|
|
|
|
Run the dev server, ignoring the public directory:
|
|
|
|
```txt
|
|
npx lowdefy@latest dev --watch-ignore public/**
|
|
```
|
|
|
|
# Configuration
|
|
|
|
All the CLI options can either be set as command line options, or the `cli` config object in your `lowdefy.yaml` file. Options set as command line options take precedence over options set in the `lowdefy.yaml` file. The config in the `lowdefy.yaml` cannot be referenced using the `_ref` operator, but need to be set in the file itself.
|
|
|
|
Options set in the `lowdefy.yaml` should be defined in camelCase. The options that can be set are:
|
|
|
|
- `blocksServerUrl: string`: The URL from where Lowdefy blocks will be served.
|
|
- `disableTelemetry: boolean`: Disable telemetry.
|
|
- `outputDirectory: string`: Change the directory to which build artifacts are saved. The default is `<base-directory>/.lowdefy/build`.
|
|
- `refResolver: string`: Path to a JavaScript file containing a `_ref` resolver function to be used as the app default `_ref` resolver.
|
|
- `port: number`: Change the port the server is hosted at. The default is `3000`.
|
|
- `watch: string[]`: A list of paths to files or directories that should be watched for changes.
|
|
- `watchIgnore: string[]`: A list of paths to files or directories that should be ignored by the file watcher. Globs are supported.
|
|
|
|
The `--base-directory` option cannot be set from the `lowdefy.yaml` file.
|
|
|
|
# Telemetry
|
|
|
|
The CLI collects usage and error information to help us fix bugs, prioritize features, and understand how Lowdefy is being used.
|
|
|
|
All telemetry can be disabled by setting the `disableTelemetry` flag in `cli` config object in your `lowdefy.yaml` file (this cannot be a reference to another file), or by using the `--disable-telemetry` command line flag.:
|
|
|
|
###### `lowdefy.yaml`
|
|
|
|
```yaml
|
|
lowdefy: LOWDEFY_VERSION
|
|
|
|
cli:
|
|
disableTelemetry: true
|
|
```
|
|
|
|
We collect the following information:
|
|
|
|
- The CLI version.
|
|
- The Lowdefy version of your app.
|
|
- A random local app id (stored locally in your project folder at `.lowdefy/cli.json`).
|
|
- The CLI command used.
|
|
- If the CLI is being used in the Netlify CI environment (when using the `build-netlify` command).
|
|
- Your IP address.
|
|
- Error messages and stack traces for any errors.
|
|
|
|
## More Lowdefy resources
|
|
|
|
- Getting started with Lowdefy - https://docs.lowdefy.com/tutorial-start
|
|
- Lowdefy docs - https://docs.lowdefy.com
|
|
- Lowdefy website - https://lowdefy.com
|
|
- Community forum - https://github.com/lowdefy/lowdefy/discussions
|
|
- Bug reports and feature requests - https://github.com/lowdefy/lowdefy/issues
|
|
|
|
## Licence
|
|
|
|
[Apache-2.0](https://github.com/lowdefy/lowdefy/blob/main/LICENSE)
|