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,
npx
andyarn
are interchangeable.
Standard 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
--static-files
Use static files instead of Webpack's default memory filesystem (virtual files). - Server Restart On Change
--watch-server
Server development mode. Restart the server on file changes. - Node Inspector
--inspector
Open a port for the Node Inspector. Which allows debugging with Chrome developer tools, VSCode debugger, etc..
Running Application Build
The 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
--PORT
Set the port used for the server - Use Offline Mode
--offline
Run in offline mode. If no internet connection is detected, this is set by default. - Developer Tool Inspector
--inspect
Open Node Inspector on a port. Allows developer tools to work with node for inspecting variables. - Set Factor Environment
--ENV
Set theFACTOR_ENV
environmental variable, useful for testing, etc... (Defaults to same value as NODE_ENV) - Debug Mode
--debug
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 run
command.
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
Resources
Mac
- OhMyZsh
- Spaceship Prompt