now CLI is the main interface to the Now platform.
It's available on macOS, Windows, and Linux via
While the default behavior of
now is to deploy, it also has a variety of sub
commands grouped by different concerns.
The following are the most important commands in Vercel CLI:
When you invoke
After that, you'll instantly receive its URL so that you can share it with other people around the globe.
If you want to deploy multiple paths at once, read this.
Show a list of all deployments. If
Remove a deployment from our platform. The
Let's you configure an alias for an existing deployment. You can read more about how to take the maximum of functionality out of this subcommand here.
Allows you to manage your domain names directly from the command line (before using them as aliases with
By default, Now will automatically provision certificates for your deployments. Using this subcommand, you can see when they're expiring and upload your own ones (read more).
By default, running
deploy the current working directory. In order to deploy
a different path, pass it to
In certain cases, however, you might want to deploy multiple files or directories at once. This works the same way – just pass more paths to the command:
If you pass more than one path, all of them will be uploaded and bundled into a single static deployment on the server. The result will be a single URL.
Manage your account straight from your terminal:
Easily add or remove credits cards from your account and adjust billing methods.
Switch your plan from within the command line interface. Even after the command is run, we don't require you to use a web interface. The whole process happens directly in your terminal.
To show the list of subcommands and options in your terminal, run this command:
Now uses the metafiles inside your project to determine which files and directories should be uploaded to our platform and which ones should be ignored:
.gitignoreexists, we don't upload the contents that are defined in it
.npmignoreexists, we don't upload the contents that are defined in it and ignore the existence of .gitignore
.dockerignoreexists, we don't upload the contents that are defined in it and ignore the existence of .gitignore and .npmignore
But it will get a little tricky if you're using the
files property inside
package.json: In that case, we follow npm's behavior. This means that if
files exists (which as per definition defines which files should be uploaded),
.npmignore will take precedence and have the final word on which items will be uploaded to Now.
This means that if you want to specify a list of files that should never be ignored when it comes to now, you should either use the
files) property inside
package.json or the
files property inside
"files": [ "hello.png", "dist" ]
You can learn more about how to use this property here.