Contents

The pub tool

The pub package manager has a command-line interface that works with either the flutter tool or the dart tool. With either tool, add the pub command followed by a subcommand such as get:

$ dart pub get    # Gets dependencies for a non-Flutter package
$ flutter pub get # Gets dependencies for a Flutter package

This site uses dart pub <subcommand> for its examples, but if your current directory holds a Flutter app or other Flutter-specific code, use flutter pub <subcommand> instead. For more information, see Using packages on the Flutter website.

If you encounter problems using the pub tool, see Troubleshooting Pub.

List of subcommands

Detailed documentation exists for each of the following pub subcommands:

Overview of subcommands

Pub’s subcommands fall into the following categories:

Managing package dependencies

Pub provides a number of subcommands for managing the packages your code depends on.

In this group, the most commonly used subcommands are get and upgrade, which retrieve or upgrade dependencies used by a package. Every time you modify a pubspec file, run dart pub get or flutter pub get to make sure the dependencies are up to date. Some IDEs perform this step automatically on the creation of a project, or any modification of the pubspec.

cache
Manages pub’s local package cache. Use this subcommand to add packages to your cache, or to perform a clean reinstall of all packages in your cache.
deps
Lists all dependencies used by the current package.
downgrade
Retrieves the lowest versions of all the packages that are listed as dependencies used by the current package. Used for testing the lower range of your package’s dependencies.
get
Retrieves the packages that are listed as the dependencies for the current package. If a pubspec.lock file already exists, fetches the version of each dependency (if possible) as listed in the lock file. Creates or updates the lock file, as needed.
outdated
Looks at every package that the current package depends on, determines which package dependencies are out of date, and gives you advice on how to update them. Use this subcommand when you want to update package dependencies.
upgrade
Retrieves the latest version of each package listed as dependencies used by the current package. If a pubspec.lock file exists, ignores the versions listed in the lock file and fetches the newest versions that honor the constraints in the pubspec. Creates or updates the lock file, as needed.

Running command-line apps

The global subcommand lets you make a package globally available, so you can run scripts from that package’s bin directory. To run globally available scripts, you must add the system cache bin directory to your path.

Deploying packages and apps

With pub you can publish packages and command-line apps.

Packages

To share your Dart packages with the world, you can use the publish subcommand to upload the package to the pub.dev site. The uploader subcommand enables specific users to modify and upload new versions of your package.

Command-line apps

For any package that contains scripts (anything under the bin/ directory), consider adding the executables tag to the pubspec file. When a script is listed under executables, users can run dart pub global activate to make it directly available from the command line.

Global options

Several command-line options work with all of the pub subcommands. These include:

--help or -h
Print usage information.
--trace
Print debugging information when an error occurs.
--verbosity=<level>
The specified level determines the amount of information that is displayed:
  • all
    Show all output, including internal tracing messages.
  • io
    Show I/O operations.
  • normal
    Show errors, warnings, and user messages.
  • solver
    Show steps during version resolution.
-verbose or -v
Equivalent to --verbosity=all.