CLI and Commands
The CLI is the primary way of building, serving and controlling Factor from your terminal or the terminal of your host.
Installing The CLI
If you've installed
@factor/core in your project, then you've already installed and configured the Factor CLI.
Once Factor itself is installed, you should be able to run Factor commands on that project using:
npx factor <command>
Tip: For running executable commands,
Running Development Server
The aptly named
dev command starts your local development server and runs Factor in development mode.
# Run dev server npx factor dev
Dev Server Options
- Use Static Files
Use static files instead of Webpack's default memory filesystem (virtual files).
- Server Restart On Change
Server development mode. Restart the server on file changes.
- Node Inspector
Open a port for the Node Inspector. Which allows debugging with Chrome developer tools, VSCode debugger, etc..
Running Application Build
factor build command will generate all production files and place them in the
dist folder within your app. These are the files you'll be serving in production.
npx factor build
This can sometimes take a while as Webpack needs to optimize, analyze, and compress all files into a bundle that is served to your visitors in production.
Running Production Server
To run your server in production mode, all you need to do is run:
npx factor serve
Note that for this command to work appropriately you'll need to make sure you build the app for production first. If you'd like to do both building and serving for production in one command use
npx factor start
Running Build Then Production Server
As mentioned above, to build and then serve for production use:
npx factor start
Standard CLI Options
- Set Port
Set the port used for the server
- Use Offline Mode
Run in offline mode. If no internet connection is detected, this is set by default.
- Developer Tool Inspector
Open Node Inspector on a port. Allows developer tools to work with node for inspecting variables.
- Set Factor Environment
FACTOR_ENVenvironmental variable, useful for testing, etc... (Defaults to same value as NODE_ENV)
- Debug Mode
Outputs additional debugging information into your console where possible.
Commands from extensions
Many extensions add or extend CLI functionality to help you accomplish tasks related to that plugin. For example, a database extension might allow you to download a backup via CLI. Commands added from extensions are used with the
npx factor run <extension-command>
If you're an advanced developer or building extensions for yourself and others, learn how to do this yourself in the document on extending the CLI