dart provides reusable package to share the code between different applications. It uses package manager(pub) tool to manage the packages.
It provides reusable libries and code for dart, flutter applications
What is a package?
Package is a reusable code, runs independently, contains classes and functions. Also contains dependencies to compile and run, shipped as a library.
Dart package manager
Dart and flutter uses native pub as a package manager By Default, dart applications loads some packages on running application.
pub is command line tool similar to npm in NodeJS applicaiton.
It used to install, uninstall, upgrade, download packages in applications
It uses two files
pubspec.yamlfile, contains package information, third party dependenciespubspec.lockfile lock file that contains third party and it’s direct, indirect dependencies
pubspec.lock file:
pubspec.lock file generated after installing the package using pub install or pub get command
pubspec.yaml file:
pubspec file contains information about project metadata information, as well as other informatino
// pubspec.yaml Example
name: packagename
description: description
version: 1.0.0
# package homepage url.
homepage: https://github.com/username/repo/README.md
# package repository link.
repository: https://github.com/Hypermona/calculator
environment:
sdk: '>=2.18.2 <3.0.0'
dependencies:
package: ^version
dev_dependencies:
package: ^version
Following are components of pubspec.yaml
- name: package name
- description: Short description text about package
- version: Version as per semantic versioning(MAJOR.MINOR.PATCH)
- homepage: package website url, contains Documentation
- repository: Package code repository
- environment: Contains SDK version to consider
- dependencies: Dependencies and their version, avialiable at runtime, shipped with library.
- dev_dependencies: Development Dependencies and their versions, avialiable at compile time, not shipped with library
Here is an command syntax.
dart pub operation
flutter pub operation
Some of the commands used by dart and flutter developers to manage the dependencies in a project.
Dart install dependency
to install depency to an applicaiton, add an dependency in dependencies of pubspec.yaml
dependencies:
http: ^0.13.3
Next run, dart pub get command
It reads the pubspec.yaml file and isntall the dependencies(with version) to the project.
Update the pub.lock with installed version and dependent packages with version.
Before getting the dependency,
- if pubspec.lock file exists, It get the dependency version, install the dependency.
- if
pubspec.lockfile does not exists, it gets the latest version, installs it.
dart upgrade dependency to latest version
dart pub upgrade updates the latest package version in Dart project, Installs the project dependencies..
It updates the pubspec.lock with latest version.
You can update package
- update version in pubspec.yaml, run
dart pub upgradecommand - another way, using
dart pub upgrade --major-versions, It updates the pubspec.yaml and lock file with latest version
dart View outdate and latest versions
dart pub outdated command gives report which contains each package with outdated versions and latest version
PS E:\myblogs\stringutils> dart pub outdated
Showing outdated packages.
[*] indicates versions that are not the latest available.
Package Name Current Upgradable Resolvable Latest
dev_dependencies:
lints *2.1.1 *2.1.1 3.0.0 3.0.0
1 dependency is constrained to a version that is older than a resolvable version.
To update it, edit pubspec.yaml, or run `dart pub upgrade --major-versions`.
dart pub downgradeIt downgrade the package version to version in pubspec.yaml of Dart project.dart pub publish:
publish used to publish the code to pub.dev as well as github repository, So that it can be reused by other applicaitons.
dart pub global activate
use dart pub global activat package command. In order to activate package avialiable globally,
How to clean cache to avoid version conflicts
sometimes, if you are working with multiple versions of a same package in development, you will get version conflicts and errors.
To avoid those issues, dart pub cache clean clean cache
Flutter package manager.
pub is a default package for managing dependencies in Flutter.
- To install dependencies
flutter pub get
- To upgrade latest version
flutter pub upgrade